@meowdown/core 0.16.2 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.d.ts +37 -7
- package/dist/index.js +14 -10
- package/dist/style.css +9 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -46,7 +46,7 @@ Heading shortcuts toggle the current block to a heading of that level (or back t
|
|
|
46
46
|
- `--meowdown-image-radius`: corner radius of rendered inline images.
|
|
47
47
|
- `--meowdown-placeholder`: placeholder text color (defaults to `--meowdown-muted`).
|
|
48
48
|
- `--meowdown-font-mono`: monospace font stack.
|
|
49
|
-
- `--meowdown-gutter`: horizontal editor padding.
|
|
49
|
+
- `--meowdown-gutter`: horizontal editor padding. Applied to the editable root's `.meowdown-content` class (set by `@meowdown/react`), not `.ProseMirror`, so the block handle's drag preview stays unpadded. Floating UI such as the block handle lives inside it; keep it at least `3.5rem`.
|
|
50
50
|
- `--meowdown-selection`: text `::selection` background.
|
|
51
51
|
- `--meowdown-node-outline`: outline of a selected node; border color of selected tables and cells.
|
|
52
52
|
- `--meowdown-node-selection`: background wash of a selected node or selected cells.
|
package/dist/index.d.ts
CHANGED
|
@@ -96,19 +96,31 @@ interface MdPackAttrs {
|
|
|
96
96
|
}
|
|
97
97
|
//#endregion
|
|
98
98
|
//#region src/extensions/extension.d.ts
|
|
99
|
-
declare function defineEditorExtensionImpl(): import("@prosekit/core").Union<readonly [import("@prosekit/
|
|
99
|
+
declare function defineEditorExtensionImpl(): import("@prosekit/core").Union<readonly [import("@prosekit/core").Extension<{
|
|
100
|
+
Nodes: import("@prosekit/core").SimplifyDeeper<{
|
|
101
|
+
paragraph: import("@prosekit/pm/model").Attrs;
|
|
102
|
+
}>;
|
|
103
|
+
Marks: never;
|
|
104
|
+
Commands: {
|
|
105
|
+
setParagraph: [];
|
|
106
|
+
};
|
|
107
|
+
}>, import("@prosekit/extensions/doc").DocExtension, import("@prosekit/core").Extension<{
|
|
100
108
|
Nodes: {
|
|
101
109
|
doc: {
|
|
102
110
|
frontmatter?: Frontmatter;
|
|
103
111
|
};
|
|
104
112
|
};
|
|
105
113
|
}>, import("@prosekit/extensions/text").TextExtension, import("@prosekit/extensions/blockquote").BlockquoteExtension, MeowdownListExtension, import("@prosekit/core").Union<readonly [import("@prosekit/extensions/heading").HeadingSpecExtension, import("@prosekit/core").Extension<{
|
|
114
|
+
Nodes: {
|
|
115
|
+
heading: import("@prosekit/extensions/heading").HeadingAttrs;
|
|
116
|
+
};
|
|
117
|
+
}>, import("@prosekit/core").Extension<{
|
|
106
118
|
Nodes: {
|
|
107
119
|
heading: {
|
|
108
120
|
setextUnderline?: number | null;
|
|
109
121
|
};
|
|
110
122
|
};
|
|
111
|
-
}>, import("@prosekit/core").PlainExtension, import("@prosekit/extensions/heading").HeadingCommandsExtension, import("@prosekit/core").PlainExtension]>, import("@prosekit/core").Union<readonly [import("@prosekit/extensions/table").TableSpecExtension, import("@prosekit/extensions/table").TableRowSpecExtension, import("@prosekit/extensions/table").TableCellSpecExtension, import("@prosekit/extensions/table").TableHeaderCellSpecExtension, import("@prosekit/core").PlainExtension, import("@prosekit/extensions/table").TableCommandsExtension, import("@prosekit/core").PlainExtension]>, import("@prosekit/extensions/code-block").CodeBlockExtension, MeowdownHorizontalRuleExtension, import("@prosekit/core").Union<readonly [import("@prosekit/core").Extension<{
|
|
123
|
+
}>, import("@prosekit/core").PlainExtension, import("@prosekit/extensions/heading").HeadingCommandsExtension, import("@prosekit/core").PlainExtension]>, import("@prosekit/core").Union<readonly [import("@prosekit/extensions/table").TableSpecExtension, import("@prosekit/extensions/table").TableRowSpecExtension, import("@prosekit/extensions/table").TableCellSpecExtension, import("@prosekit/extensions/table").TableHeaderCellSpecExtension, import("@prosekit/core").PlainExtension, import("@prosekit/extensions/table").TableCommandsExtension, import("@prosekit/core").PlainExtension, import("@prosekit/core").PlainExtension]>, import("@prosekit/extensions/code-block").CodeBlockExtension, MeowdownHorizontalRuleExtension, import("@prosekit/core").Union<readonly [import("@prosekit/core").Extension<{
|
|
112
124
|
Marks: {
|
|
113
125
|
mdMark: import("@prosekit/pm/model").Attrs;
|
|
114
126
|
};
|
|
@@ -272,6 +284,11 @@ declare const codeBlockLanguages: ReadonlyArray<{
|
|
|
272
284
|
}>;
|
|
273
285
|
//#endregion
|
|
274
286
|
//#region src/converters/pm-to-md.d.ts
|
|
287
|
+
/** Options for {@link docToMarkdown}. */
|
|
288
|
+
interface DocToMarkdownOptions {
|
|
289
|
+
/** Whether to serialize the doc's `frontmatter` attribute as a leading `---` block. Off by default. */
|
|
290
|
+
frontmatter?: boolean;
|
|
291
|
+
}
|
|
275
292
|
/**
|
|
276
293
|
* Convert a ProseMirror document into a Markdown string.
|
|
277
294
|
*
|
|
@@ -287,12 +304,19 @@ declare const codeBlockLanguages: ReadonlyArray<{
|
|
|
287
304
|
* - Backtick fence width and cell escaping use single linear loops, no
|
|
288
305
|
* regex on the hot path.
|
|
289
306
|
*/
|
|
290
|
-
declare function docToMarkdown(node: ProseMirrorNode): string;
|
|
307
|
+
declare function docToMarkdown(node: ProseMirrorNode, options?: DocToMarkdownOptions): string;
|
|
291
308
|
//#endregion
|
|
292
309
|
//#region src/extensions/schema.d.ts
|
|
293
310
|
type TypedNodeBuilders = ExtractNodeBuilders<EditorExtension>;
|
|
294
311
|
//#endregion
|
|
295
312
|
//#region src/converters/md-to-pm.d.ts
|
|
313
|
+
/** Options for {@link markdownToDoc}. */
|
|
314
|
+
interface MarkdownToDocOptions {
|
|
315
|
+
/** Node builders to build the document with. Defaults to the shared schema's builders. */
|
|
316
|
+
nodes?: TypedNodeBuilders;
|
|
317
|
+
/** Whether to peel a leading `---` frontmatter block onto the doc's `frontmatter` attribute. Off by default. */
|
|
318
|
+
frontmatter?: boolean;
|
|
319
|
+
}
|
|
296
320
|
/**
|
|
297
321
|
* Convert a markdown string into a ProseMirror document node.
|
|
298
322
|
*
|
|
@@ -307,17 +331,23 @@ type TypedNodeBuilders = ExtractNodeBuilders<EditorExtension>;
|
|
|
307
331
|
* inline marks because the markdown stays literal text - emphasis / link /
|
|
308
332
|
* inline-code characters survive verbatim.
|
|
309
333
|
*/
|
|
310
|
-
declare function markdownToDoc(markdown: string,
|
|
334
|
+
declare function markdownToDoc(markdown: string, options?: MarkdownToDocOptions): ProseMirrorNode;
|
|
311
335
|
//#endregion
|
|
312
336
|
//#region src/converters/check-roundtrip.d.ts
|
|
313
337
|
/**
|
|
314
338
|
* How faithfully markdown survives a parse-then-serialize round trip:
|
|
315
339
|
* - `exact`: byte-identical (modulo the trailing newline).
|
|
316
|
-
* - `normalizing`: same non-blank lines
|
|
340
|
+
* - `normalizing`: same non-blank lines ignoring trailing whitespace; only
|
|
341
|
+
* blank-line layout or insignificant trailing whitespace differs.
|
|
317
342
|
* - `lossy`: a non-blank line changed, so content would be lost or altered.
|
|
318
343
|
*/
|
|
319
344
|
type RoundTripFidelity = 'exact' | 'normalizing' | 'lossy';
|
|
345
|
+
/** Options for {@link checkRoundTrip}. */
|
|
346
|
+
interface CheckRoundTripOptions {
|
|
347
|
+
/** Whether to handle a leading `---` frontmatter block. Off by default. */
|
|
348
|
+
frontmatter?: boolean;
|
|
349
|
+
}
|
|
320
350
|
/** Classify how `markdown` survives the editor's parse-then-serialize round trip. */
|
|
321
|
-
declare function checkRoundTrip(markdown: string): RoundTripFidelity;
|
|
351
|
+
declare function checkRoundTrip(markdown: string, options?: CheckRoundTripOptions): RoundTripFidelity;
|
|
322
352
|
//#endregion
|
|
323
|
-
export { type CodeBlockAttrs, EDITOR_KEY_BINDINGS, type EditorExtension, type ImageClickHandler, type ImageClickPayload, type ImageOptions, type LinkClickHandler, type LinkClickPayload, type MarkMode, type PlaceholderOptions, Priority, type RoundTripFidelity, type TypedEditor, type WikilinkClickHandler, type WikilinkClickPayload, checkRoundTrip, codeBlockLanguages, defineBulletAfterHeading, defineEditorExtension, defineEmbedPaste, defineImage, defineImageClickHandler, defineLinkClickHandler, defineMarkMode, definePlaceholder, defineReadonly, defineWikilinkClickHandler, docToMarkdown, markdownToDoc, withPriority };
|
|
353
|
+
export { type CheckRoundTripOptions, type CodeBlockAttrs, type DocToMarkdownOptions, EDITOR_KEY_BINDINGS, type EditorExtension, type ImageClickHandler, type ImageClickPayload, type ImageOptions, type LinkClickHandler, type LinkClickPayload, type MarkMode, type MarkdownToDocOptions, type PlaceholderOptions, Priority, type RoundTripFidelity, type TypedEditor, type WikilinkClickHandler, type WikilinkClickPayload, checkRoundTrip, codeBlockLanguages, defineBulletAfterHeading, defineEditorExtension, defineEmbedPaste, defineImage, defineImageClickHandler, defineLinkClickHandler, defineMarkMode, definePlaceholder, defineReadonly, defineWikilinkClickHandler, docToMarkdown, markdownToDoc, withPriority };
|
package/dist/index.js
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
import{Priority as e,Priority as t,createMarkBuilders as n,createNodeBuilders as r,defineBaseCommands as i,defineBaseKeymap as a,defineCommands as o,defineHistory as s,defineKeymap as c,defineMarkSpec as l,defineMarkView as u,defineNodeAttr as d,
|
|
2
|
-
`)}function Xe(e){let{selection:t}=e;if(!t.empty)return x.empty;let n=t.$head,{parent:r}=n;if(!r.isTextblock||r.type.spec.code)return x.empty;let i=p(n,m(e.schema,`mdPack`));return i?x.create(e.doc,[ge.inline(i.from,i.to,{class:`show`})]):x.empty}function w(e,t){let n=Je(t);return n?e.flatMap(e=>e.modes.includes(n)?[e.name]:[]):[]}function T(e,t,n){for(let r of n){let n=C(e,t,r);if(n)return n}}function E(e,t,n){let r=T(e,t,n);return r&&r.to===t?r:void 0}function D(e,t,n){let r=T(e,t,n);return r&&r.from===t?r:void 0}function O(e,t){let{from:n,to:r,empty:i}=e.selection;if(i)return;let a=T(e,n,t);return a&&a.from===n&&a.to===r?a:void 0}function Ze(e,t){return b.create(e.doc,t.from,t.to)}function Qe(e){return(t,n)=>{let r=w(e,t);if(r.length===0||!ne(t.selection))return!1;let i=t.selection;if(i.empty){let e=D(t,i.from,r);if(e)return n?.(t.tr.setSelection(Ze(t,e))),!0;if(E(t,i.from,r)){let e=t.doc.resolve(i.from);return i.from>=e.end()?!1:(n?.(t.tr.setSelection(b.create(t.doc,i.from+1))),!0)}return!1}let a=O(t,r);return a?(n?.(t.tr.setSelection(b.create(t.doc,a.to))),!0):!1}}function $e(e){return(t,n)=>{let r=w(e,t);if(r.length===0||!ne(t.selection))return!1;let i=t.selection;if(i.empty){let e=E(t,i.from,r);return e?(n?.(t.tr.setSelection(Ze(t,e))),!0):!1}let a=O(t,r);return a?(n?.(t.tr.setSelection(b.create(t.doc,a.from))),!0):!1}}function et(e){return(t,n)=>{let r=w(e,t);if(r.length===0||!t.selection.empty)return!1;let i=t.selection.from,a=E(t,i,r);return a?(n?.(t.tr.delete(a.from,a.to)),!0):!D(t,i,r)||i<=t.doc.resolve(i).start()?!1:(n?.(t.tr.delete(i-1,i)),!0)}}function tt(e){return(t,n)=>{let r=w(e,t);if(r.length===0||!t.selection.empty)return!1;let i=t.selection.from,a=D(t,i,r);return a?(n?.(t.tr.delete(a.from,a.to)),!0):!E(t,i,r)||i>=t.doc.resolve(i).end()?!1:(n?.(t.tr.delete(i,i+1)),!0)}}function nt(e,t){return new v({key:new y(`atomic-mark-selection-${t}`),props:{decorations:n=>{let r=w(e,n);if(r.length===0)return;let i=O(n,r);if(i)return x.create(n.doc,[ge.inline(i.from,i.to,{class:t})])}}})}function rt({marks:e,selectedClass:n}){return g(_(c({ArrowRight:Qe(e),ArrowLeft:$e(e),Backspace:et(e),Delete:tt(e)}),t.high),f(nt(e,n)))}const k=new Map;async function it(e){let t=_e.matchLanguageName(ve,e,!0);if(!t){k.set(e,null);return}let n=t.support;if(!n)try{n=await t.load()}catch(t){console.error(`[meowdown] Failed to load language "${e}":`,t),k.set(e,null)}if(k.has(e))return;if(!n){k.set(e,null);return}let r=be({parse:e=>n.language.parser.parse(e.content),highlighter:ye});k.set(e,r)}const at=e=>{let t=e.language?.trim();if(!t)return[];let n=k.get(t);return n?n(e):n===null?[]:it(t)};function ot(){return le({parser:at,nodeTypes:[`codeBlock`]})}function st(){return d({type:`doc`,attr:`frontmatter`,default:null})}function ct(){return d({type:`heading`,attr:`setextUnderline`,default:null,toDOM:e=>e==null?null:[`data-setext-underline`,String(e)],parseDOM:e=>{let t=e.getAttribute(`data-setext-underline`);if(t==null)return null;let n=Number.parseInt(t,10);return Number.isSafeInteger(n)&&n>0?n:null}})}function A(e){return oe(re({type:`heading`,attrs:{level:e}}))}const lt=(e,t,n)=>te(e,n)?.parent.type.name===`heading`?ie()(e,t,n):!1;function ut(){return c({"Mod-1":A(1),"Mod-2":A(2),"Mod-3":A(3),"Mod-4":A(4),"Mod-5":A(5),"Mod-6":A(6),Backspace:lt})}function dt(){return g(Ce(),ct(),Se(),xe(),ut())}function ft(){return d({type:`horizontalRule`,attr:`marker`,default:null,toDOM:e=>e?[`data-hr-marker`,e]:null,parseDOM:e=>e.getAttribute(`data-hr-marker`)})}function pt(){return g(we(),ft())}function mt(e){let[t,n,r]=e;return[t,n,r.map(e=>e.toJSON())]}function ht(e,t){let[n,r,i]=t;return[n,r,i.map(t=>ke.fromJSON(e,t))]}var j=class e extends Ee{constructor(e){super(),this.chunks=e}apply(e){if(this.chunks.length===0)return De.ok(e);let t=e.content.size,n;for(let[r,i,a]of this.chunks){if(r>=i)continue;let o=Math.max(0,Math.min(r,t)),s=Math.max(o,Math.min(i,t));o>=s||e.nodesBetween(o,s,(t,r)=>{if(!t.isText)return!0;let i=Math.max(o,r),c=Math.min(s,r+t.nodeSize);if(i>=c)return!1;let l=t.marks;for(let t of l)t.isInSet(a)||(n??=new Oe(e),n.removeMark(i,c,t));for(let t of a)t.isInSet(l)||(n??=new Oe(e),n.addMark(i,c,t));return!1})}return De.ok(n?n.doc:e)}invert(e){if(this.chunks.length===0)return gt;let t=this.chunks[0][0],n=this.chunks[0][1];for(let[,e]of this.chunks)e>n&&(n=e);let r=e.content.size,i=Math.max(0,Math.min(t,r)),a=Math.max(i,Math.min(n,r));return new Te(i,a,e.slice(i,a),!1)}map(e){return null}toJSON(){return{stepType:`batchSetMark`,chunks:this.chunks.map(mt)}}static fromJSON(t,n){let r=n.chunks;return new e(r.map(e=>ht(t,e)))}};Ee.jsonID(`batchSetMark`,j);const gt=new j([]),_t=new Set([`com`,`br`,`net`,`jp`,`org`,`in`,`de`,`ru`,`it`,`fr`]),vt=/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;function yt(e){let t=e.indexOf(`/`);return t===-1?e:e.slice(0,t)}function bt(e){let t=e.split(`.`);if(t.length<2)return!1;let n=t[t.length-1].toLowerCase();if(!_t.has(n)||t[t.length-2].length<3)return!1;for(let e of t)if(e.length>63||!vt.test(e))return!1;return!0}function xt(e){return e===32||e===9||e===10||e===13}const St=/^[a-z0-9-]+(?:\.[a-z0-9-]+)+(?:\/[^\s<]*)?/i,Ct=/[\s(*_~]/;function wt(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===45}function Tt(e,t,n){let r=0;for(let i=0;i<t;i++)e[i]===n&&r++;return r}function Et(e){let t=e.length;for(;;){let n=e[t-1];if(/[?!.,:*_~]/.test(n)||n===`)`&&Tt(e,t,`)`)>Tt(e,t,`(`))t--;else if(n===`;`){let n=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(e.slice(0,t));if(!n)break;t=n.index}else break}return t}const Dt={parseInline:[{name:`BareAutolink`,before:`Link`,parse(e,t,n){if(!wt(t)||e.hasOpenLink)return-1;let r=e.slice(n-1,n);if(r!==``&&!Ct.test(r))return-1;let i=St.exec(e.slice(n,e.end));if(!i)return-1;let a=Et(i[0]);return a===0||!bt(yt(i[0].slice(0,a)))?-1:e.addElement(e.elt(`URL`,n,n+a))}}]};function Ot(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===45||e===95||e>127&&/[\p{L}\p{N}]/u.test(String.fromCharCode(e))}function kt(e){return e>=65&&e<=90||e>=97&&e<=122||e>127&&/\p{L}/u.test(String.fromCharCode(e))}const At={defineNodes:[{name:`Hashtag`}],parseInline:[{name:`Hashtag`,parse(e,t,n){if(t!==35||!/\s|^$/.test(e.slice(n-1,n)))return-1;let r=n+1,i=!1;for(;r<e.end;){let t=e.char(r);if(!Ot(t))break;i||=kt(t),r++}return i?e.addElement(e.elt(`Hashtag`,n,r)):-1}}]},jt={defineNodes:[{name:`Wikilink`},{name:`WikilinkMark`}],parseInline:[{name:`Wikilink`,before:`Link`,parse(e,t,n){if(t!==91||e.char(n+1)!==91)return-1;let r=!1;for(let t=n+2;t<e.end-1;t++){let i=e.char(t);if(i===93){if(e.char(t+1)!==93||!r)return-1;let i=t+2;return e.addElement(e.elt(`Wikilink`,n,i,[e.elt(`WikilinkMark`,n,n+2),e.elt(`WikilinkMark`,t,i)]))}if(i===91||i===10)return-1;i!==32&&i!==9&&(r=!0)}return-1}}]};function Mt(e){return e.end}const M=je.configure([Ae,At,jt,Dt]),Nt=M.configure({parseInline:[{name:`SkipInline`,before:`Escape`,parse:Mt}]});function N(e){return M.parseInline(e,0)}function P(e,t,n=[]){for(let r of e)t(r)&&n.push(r),P(r.children,t,n);return n}function Pt(e){let t={};for(let n of e.nodeSet.types)t[n.name]=n.id;return t}const F=Pt(M);function Ft(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}function It(e){let t=e.replace(/^\[\[/,``).replace(/\]\]$/,``),n=t.indexOf(`|`);return n<0?{target:t.trim(),display:``}:{target:t.slice(0,n).trim(),display:t.slice(n+1).trim()}}function Lt(){return e=>{let t=e.attrs,n=document.createElement(`span`);n.className=`md-wikilink-view`;let r=document.createElement(`span`);n.appendChild(r);let i=document.createElement(`span`);return i.className=`md-wikilink-label`,i.contentEditable=`false`,i.dataset.testid=`wikilink`,i.textContent=t.display||t.target,n.appendChild(i),{dom:n,contentDOM:r,ignoreMutation:e=>!r.contains(e.target)}}}function Rt(){return u({name:`mdWikilinkView`,constructor:Lt()})}const I=new Map([[F.Emphasis,`mdEm`],[F.StrongEmphasis,`mdStrong`],[F.InlineCode,`mdCode`],[F.Strikethrough,`mdDel`],[F.EmphasisMark,`mdMark`],[F.CodeMark,`mdMark`],[F.LinkMark,`mdMark`],[F.StrikethroughMark,`mdMark`],[F.URL,`mdLinkUri`],[F.Hashtag,`mdTag`],[F.WikilinkMark,`mdMark`]]);function zt(e,t){let n=N(t),r=[];return L(n,[],0,t.length,t,e,r),r}function Bt(e){if(/^[a-z][a-z0-9+.-]*:/i.test(e))return e;if(/^[^\s@]+@[^\s@]+$/.test(e))return`mailto:${e}`;if(/^www\./i.test(e)||bt(yt(e)))return`https://${e}`}function L(e,t,n,r,i,a,o){let s=n;for(let n of e){n.from>s&&B(o,s,n.from,t);let e=n.type;if(e===F.Link)R(n,t,i,a,o);else if(e===F.Image)Vt(n,t,i,a,o);else if(e===F.Wikilink)z(n,t,i,a,o);else if(e===F.URL){let e=Bt(i.slice(n.from,n.to)),r=e?a.mdLinkText.create({href:e}):a.mdLinkUri.create();B(o,n.from,n.to,[...t,r])}else{let r;e===F.Emphasis?r=`italic`:e===F.StrongEmphasis?r=`bold`:e===F.InlineCode?r=`code`:e===F.Strikethrough?r=`strike`:e===F.Autolink&&(r=`autolink`);let s=r?[...t,a.mdPack.create({key:r})]:t,c=I.get(e),l=c?[...s,a[c].create()]:s;n.children.length===0?B(o,n.from,n.to,l):L(n.children,l,n.from,n.to,i,a,o)}s=n.to}s<r&&B(o,s,r,t)}function R(e,t,n,r,i){let a=-1,o=null,s=0;for(let t of e.children)t.type===F.LinkMark?(s++,s===2&&(a=t.from)):t.type===F.URL&&o===null&&(o=t);let c=o?n.slice(o.from,o.to):``,l=c?r.mdLinkText.create({href:c}):null,u=e=>a>=0&&e<a&&l!==null,d=r.mdPack.create({key:`link_${c}`}),f=[...t,d],p=e.from;for(let t of e.children){if(t.from>p){let e=u(p)?[...f,l]:f;B(i,p,t.from,e)}let e=u(t.from)?[...f,l]:f;if(t.type===F.Wikilink){z(t,e,n,r,i),p=t.to;continue}let a=I.get(t.type),o=a?[...e,r[a].create()]:e;t.children.length===0?B(i,t.from,t.to,o):L(t.children,o,t.from,t.to,n,r,i),p=t.to}p<e.to&&B(i,p,e.to,f)}function Vt(e,t,n,r,i){let a=e.children.find(e=>e.type===F.URL);if(!a){R(e,t,n,r,i);return}let o=e.children.filter(e=>e.type===F.LinkMark),s=n.slice(a.from,a.to),c=o.length>=2?n.slice(o[0].to,o[1].from):``,l=r.mdImageSource.create({src:s,alt:c}),u=r.mdImageView.create({src:s,alt:c}),d=r.mdPack.create({key:`image_${s}`}),f=e.to-1,p=e=>e>=f?[...t,d,l,u]:[...t,d,l],m=e.from;for(let t of e.children){t.from>m&&B(i,m,t.from,p(m));let e=I.get(t.type),a=e?[...p(t.from),r[e].create()]:p(t.from);t.children.length===0?B(i,t.from,t.to,a):L(t.children,a,t.from,t.to,n,r,i),m=t.to}m<e.to&&B(i,m,e.to,p(m))}function z(e,t,n,r,i){let{target:a,display:o}=It(n.slice(e.from,e.to)),s=r.mdWikilinkSource.create({target:a}),c=r.mdWikilinkView.create({target:a,display:o}),l=e.to-1,u=e=>e>=l?[...t,s,c]:[...t,s],d=e.from;for(let t of e.children){t.from>d&&B(i,d,t.from,u(d));let e=r.mdMark.create();t.from<l&&t.to>l?(B(i,t.from,l,[...u(t.from),e]),B(i,l,t.to,[...u(l),e])):B(i,t.from,t.to,[...u(t.from),e]),d=t.to}d<e.to&&B(i,d,e.to,u(d))}function B(e,t,n,r){if(t>=n)return;let i=e.at(-1);if(i&&i[1]===t&&Ft(i[2],r)){e[e.length-1]=[i[0],n,i[2]];return}e.push([t,n,r])}const Ht=Me(()=>{let e=Fn().schema;if(e==null)throw Error(`Unexpected empty schema`);return e}),Ut=Me(()=>r(Ht())),V=`meowdown_mark_builders`;function Wt(e){let t=e.cached[V];if(t)return t;let r=n(e);return e.cached[V]=r,r}const H=`inline-marks-applied`,Gt=new WeakMap;let Kt=0,qt=0;function Jt(e,t,n){let r=Gt.get(e);if(r?qt++:(Kt++,r=zt(Wt(n),e.textContent),Gt.set(e,r)),t===0)return r;let i=[];for(let[e,n,a]of r)i.push([e+t,n+t,a]);return i}function Yt(e,t){let n=1/0,r=-1/0;for(let t of e)for(let e of t.mapping.maps)e.forEach((e,t,i,a)=>{i<n&&(n=i),a>r&&(r=a)});let i=t.doc.content.size;return n>r?{from:0,to:i}:{from:Math.max(0,n),to:Math.min(i,r)}}function Xt(e,t){let n=[];return e.doc.nodesBetween(t.from,t.to,(t,r)=>{if(t.type.spec.code)return!1;if(!t.isTextblock)return!0;if(t.childCount===0)return!1;let i=Jt(t,r+1,e.schema);return i.length>0&&n.push(...i),!1}),n}function Zt(){return new v({key:new y(`inline-mark`),appendTransaction(e,t,n){for(let t of e)if(t.getMeta(H))return null;let r=Xt(n,Yt(e,n));if(r.length===0)return null;let i=n.tr.step(new j(r));return i.setMeta(H,!0),i.setMeta(`addToHistory`,!1),i},view(e){return e.dispatch(Qt(e.state)),{}}})}function Qt(e){return e.tr.setMeta(`inline-marks-trigger`,!0)}function $t(){return f(Zt())}function en(){return l({name:`mdImageView`,inclusive:!1,attrs:{src:{default:``},alt:{default:``}},toDOM:()=>[`span`,{class:`md-image-anchor`},0],parseDOM:[{tag:`span.md-image-anchor`}]})}function tn(){return l({name:`mdImageSource`,inclusive:!1,attrs:{src:{default:``},alt:{default:``}},toDOM:()=>[`span`,{class:`md-image-source`},0],parseDOM:[{tag:`span.md-image-source`}]})}function nn(){return l({name:`mdMark`,inclusive:!1,toDOM:()=>[`span`,{class:`md-mark`},0],parseDOM:[{tag:`span.md-mark`}]})}function rn(){return l({name:`mdEm`,toDOM:()=>[`em`,0],parseDOM:[{tag:`em`}]})}function an(){return l({name:`mdStrong`,toDOM:()=>[`strong`,0],parseDOM:[{tag:`strong`}]})}function on(){return l({name:`mdCode`,toDOM:()=>[`code`,0],parseDOM:[{tag:`code`}]})}function sn(){return l({name:`mdLinkText`,inclusive:!1,attrs:{href:{default:``}},toDOM:e=>[`a`,{class:`md-link`,href:e.attrs.href},0],parseDOM:[{tag:`a`,getAttrs:e=>({href:e.getAttribute(`href`)??``})}]})}function cn(){return l({name:`mdLinkUri`,inclusive:!1,toDOM:()=>[`span`,{class:`md-link-uri`},0],parseDOM:[{tag:`span.md-link-uri`}]})}function ln(){return l({name:`mdDel`,toDOM:()=>[`del`,0],parseDOM:[{tag:`del`}]})}function un(){return l({name:`mdTag`,toDOM:()=>[`span`,{class:`md-tag`},0],parseDOM:[{tag:`span.md-tag`}]})}function dn(){return l({name:`mdWikilinkSource`,inclusive:!1,attrs:{target:{default:``}},toDOM:()=>[`span`,{class:`md-wikilink-source`},0],parseDOM:[{tag:`span.md-wikilink-source`}]})}function fn(){return l({name:`mdWikilinkView`,inclusive:!1,attrs:{target:{default:``},display:{default:``}},toDOM:()=>[`span`,{class:`md-wikilink-anchor`},0],parseDOM:[{tag:`span.md-wikilink-anchor`}]})}function pn(){return l({name:`mdPack`,excludes:``,inclusive:!1,attrs:{key:{default:``}},toDOM:e=>[`span`,{class:`md-pack`,"data-key":e.attrs.key},0],parseDOM:[{tag:`span.md-pack`}]})}function mn(){return g(nn(),rn(),an(),on(),sn(),cn(),ln(),un(),dn(),fn(),tn(),en(),pn())}function hn(e,t=0){let n=t,r=0;for(let t=0;t<e.length;t++)e.charCodeAt(t)===96?(r++,r>n&&(n=r)):r=0;return n}const U={em:{node:F.Emphasis,delim:`*`},strong:{node:F.StrongEmphasis,delim:`**`},code:{node:F.InlineCode,delim:"`"},del:{node:F.Strikethrough,delim:`~~`}},gn=new Set([F.EmphasisMark,F.CodeMark,F.LinkMark,F.StrikethroughMark]);function W(e){return[e.children[0],e.children.at(-1)]}function G(e){let{type:t,children:n}=e;if(t===F.Emphasis||t===F.StrongEmphasis||t===F.Strikethrough)return[n[0].to,n.at(-1).from];if(t===F.Link||t===F.Image){let e=n.find((e,t)=>t>0&&e.type===F.LinkMark);return e?[n[0].to,e.from]:null}return null}function K(e,t,n){for(let r of e){if(r.to<=t||r.from>=n||t<=r.from&&r.to<=n)continue;let i=G(r);return i&&i[0]<=t&&n<=i[1]?K(r.children,t,n):K(e,Math.min(t,r.from),Math.max(n,r.to))}return[t,n]}function _n(e,t,n){for(let r of e)if(!(r.to<=t||r.from>=n)&&(t>r.from||r.to>n))return _n(e,Math.min(t,r.from),Math.max(n,r.to));return[t,n]}const q=e=>e===` `||e===` `;function vn(e,t,n){for(;t<n&&q(e[t]);)t++;for(;n>t&&q(e[n-1]);)n--;return[t,n]}function yn(e,t,n,r){let i=P(N(e),e=>e.type===r.node||gn.has(e.type));for(let r=t;r<n;r++)if(!q(e[r])&&i.every(e=>!(e.from<=r&&r<e.to)))return!1;return!0}function bn(e,t,n,r,i){let a=N(e),o=P(a,e=>e.type===r.node);return i?Cn(e,o,t,n):xn(e,a,o,t,n,r)}function xn(e,t,n,r,i,a){for(let e=0;e!==i-r;){e=i-r,[r,i]=K(t,r,i);for(let e of n)e.to===r&&(r=e.from),e.from===i&&(i=e.to)}let o=[];for(let e of n)if(r<=e.from&&e.to<=i){let[t,n]=W(e);o.push({from:t.from,to:t.to,insert:``}),o.push({from:n.from,to:n.to,insert:``})}let[s,c]=Sn(e,r,i,o,a);return o.push({from:r,to:r,insert:s},{from:i,to:i,insert:c}),o}function Sn(e,t,n,r,i){if(i.node!==F.InlineCode)return[i.delim,i.delim];let a=e.slice(t,n);for(let e of[...r].sort((e,t)=>t.from-e.from))a=a.slice(0,e.from-t)+a.slice(e.to-t);let o="`".repeat(hn(a)+1),s=a.startsWith("`")||a.endsWith("`")?` `:``;return[o+s,s+o]}function Cn(e,t,n,r){let i=[];for(let a of t){if(a.to<=n||a.from>=r)continue;let[t,o]=W(a),s=Math.max(n,t.to),c=Math.min(r,o.from);for(s>=c&&([s,c]=[t.to,o.from]),[s,c]=_n(a.children.slice(1,-1),s,c);s>t.to&&q(e[s-1]);)s--;for(;c<o.from&&q(e[c]);)c++;s>t.to?i.push({from:s,to:s,insert:e.slice(o.from,o.to)}):i.push({from:t.from,to:t.to,insert:``}),c<o.from?i.push({from:c,to:c,insert:e.slice(t.from,t.to)}):i.push({from:o.from,to:o.to,insert:``})}return i}function wn(e,t,n){let{delim:r}=n,i=r.length;if(e.slice(t-i,t)===r&&e.startsWith(r,t)&&e[t-i-1]!==r[0]&&e[t+i]!==r[0])return{kind:`unwrap`,from:t-i,to:t+i};let a=N(e),o=P(a,e=>e.type===n.node).findLast(e=>e.from<=t&&t<=e.to);if(o){let[e,n]=W(o);return{kind:`move`,pos:t===o.from?e.to:t===o.to?n.from:o.to}}return Tn(a,t)||e[t-1]===r[0]||e[t]===r[0]?null:{kind:`insert`,pos:t}}function Tn(e,t){for(let n of e)if(n.from<t&&t<n.to){let e=G(n);return!e||t<e[0]||t>e[1]?!0:Tn(n.children,t)}return!1}function J(e){return(t,n)=>{if(t.selection.empty)return En(e,t,n);let{from:r,to:i,anchor:a,head:o}=t.selection,s=[];t.doc.nodesBetween(r,i,(t,n)=>{if(t.type.spec.code)return!1;if(!t.isTextblock)return!0;let a=t.textContent,o=n+1,[c,l]=vn(a,Math.max(r-o,0),Math.min(i-o,a.length));return c<l&&s.push({text:a,base:o,from:c,to:l,active:yn(a,c,l,e)}),!1});let c=s.length>0&&s.every(e=>e.active),l=s.filter(e=>c||!e.active).flatMap(t=>bn(t.text,t.from,t.to,e,c).map(e=>({from:e.from+t.base,to:e.to+t.base,insert:e.insert})));if(l.length===0)return!1;if(n){let e=t.tr;l.sort((e,t)=>t.from-e.from||t.to-e.to);for(let t of l)t.insert?e.insertText(t.insert,t.from,t.to):e.delete(t.from,t.to);e.setSelection(b.create(e.doc,e.mapping.map(a,a<=o?1:-1),e.mapping.map(o,o<a?1:-1))),n(e.scrollIntoView())}return!0}}function En(e,t,n){let{$from:r}=t.selection,i=r.parent;if(!i.isTextblock||i.type.spec.code)return!1;let a=wn(i.textContent,r.parentOffset,e);if(!a)return!1;if(n){let i=r.start(),o=t.tr;a.kind===`unwrap`&&o.delete(i+a.from,i+a.to),a.kind===`move`&&o.setSelection(b.create(o.doc,i+a.pos)),a.kind===`insert`&&(o.insertText(e.delim+e.delim,i+a.pos),o.setSelection(b.create(o.doc,i+a.pos+e.delim.length))),n(o.scrollIntoView())}return!0}function Dn(){return o({toggleEm:()=>J(U.em),toggleStrong:()=>J(U.strong),toggleCode:()=>J(U.code),toggleDel:()=>J(U.del)})}function On(){return c({"Mod-b":J(U.strong),"Mod-i":J(U.em),"Mod-e":J(U.code),"Mod-Shift-x":J(U.del)})}function kn(){return g(Dn(),On())}function An(){return d({type:`list`,attr:`marker`,default:null,splittable:!0,toDOM:e=>e===`)`||e===`*`||e===`+`?[`data-list-marker`,e]:null,parseDOM:e=>{let t=e.getAttribute(`data-list-marker`);return t===`)`||t===`*`||t===`+`?t:null}})}function jn(){return d({type:`list`,attr:`taskMarker`,default:null,splittable:!0,toDOM:e=>e===`X`?[`data-list-task-marker`,e]:null,parseDOM:e=>e.getAttribute(`data-list-task-marker`)===`X`?`X`:null})}function Mn(){return g(Ne(),An(),jn())}function Nn(){return g(Be(),ze(),Pe(),Re(),Le({allowTableNodeSelection:!0}),Fe(),Ie())}function Pn(){return g(pe(),ue(),st(),me(),se(),Mn(),dt(),Nn(),ce(),pt(),mn(),ot(),$t(),kn(),Rt(),rt({marks:[{name:`mdImageSource`,modes:[`hide`]},{name:`mdWikilinkSource`,modes:[`hide`,`focus`,`show`]}],selectedClass:`md-atomic-selected`}),a(),i(),s(),de(),he(),fe())}function Fn(){return Pn()}function In(e){let t;return f(new v({key:e.key,props:{handleDOMEvents:{mousedown:e=>{let{from:n,to:r,empty:i}=e.state.selection;return t={from:n,to:r,empty:i},!1}},handleClick:(n,r,i)=>{if(!i.target?.closest?.(e.selector))return!1;let a=e.findHitAt(n.state,r);return!a||!(ee?i.metaKey:i.ctrlKey)&&t?.empty&&t.from>=a.from&&t.to<=a.to?!1:(e.preventDefault&&i.preventDefault(),e.onClick(a.payload,i),!0)}}}))}const Ln=new y(`meowdown-wikilink-click`);function Rn(e,t){let n=C(e,t,`mdWikilinkSource`);if(!n)return;let{target:r}=n.mark.attrs;return{from:n.from,to:n.to,target:r}}function zn(e){return In({key:Ln,selector:`.md-wikilink-label, .md-wikilink-source`,preventDefault:!1,findHitAt:(e,t)=>{let n=Rn(e,t);return n?{from:n.from,to:n.to,payload:n.target}:void 0},onClick:(t,n)=>e({target:t,event:n})})}const Bn=new y(`meowdown-link-click`);function Vn(e,t){let n=C(e,t,`mdLinkText`);if(n)return{from:n.from,to:n.to,href:n.mark.attrs.href}}function Hn(e){return In({key:Bn,selector:`.md-link`,preventDefault:!0,findHitAt:(e,t)=>{let n=Vn(e,t);return n?{from:n.from,to:n.to,payload:n.href}:void 0},onClick:(t,n)=>e({href:t,event:n})})}function Un(){return typeof window>`u`?!1:window.matchMedia(`(prefers-color-scheme: dark)`).matches}const Wn=/^(?:www\.|mobile\.)?(?:twitter\.com|x\.com)$/i,Gn=/\/status(?:es)?\/(\d+)/;function Kn(e){let t;try{t=new URL(e)}catch{return}if(Wn.test(t.hostname))return Gn.exec(t.pathname)?.[1]}const qn=e=>{let t=Kn(e);if(t)return{key:`tweet:${t}`,render:()=>{let e=Un()?`dark`:`light`,n=document.createElement(`iframe`);return n.src=`https://platform.twitter.com/embed/Tweet.html?id=${t}&theme=${e}&dnt=true`,n.title=`Tweet`,n.className=`md-embed md-embed-tweet`,n.dataset.testid=`tweet-embed`,n.loading=`lazy`,n.referrerPolicy=`strict-origin-when-cross-origin`,n.setAttribute(`frameborder`,`0`),Jn(n),n}}};function Jn(e){let t=t=>{if(t.source===e.contentWindow)try{let n=t.data?.[`twttr.embed`]?.params?.[0]?.height;typeof n==`number`&&(e.style.height=`${n}px`)}catch(e){console.warn(`[meowdown] failed to parse tweet resize message:`,e)}};window.addEventListener(`message`,t);let n=new MutationObserver(()=>{e.isConnected||(window.removeEventListener(`message`,t),n.disconnect())});n.observe(document.body,{childList:!0,subtree:!0})}const Yn=/^(?:www\.|m\.)?(?:youtube\.com|youtube-nocookie\.com)$/i,Xn=/^(?:www\.)?youtu\.be$/i,Zn=/^[\w-]{11}$/;function Qn(e){let t;try{t=new URL(e)}catch{return}let n=null;if(Xn.test(t.hostname))n=t.pathname.slice(1);else if(Yn.test(t.hostname)){let[,e,r]=t.pathname.split(`/`);t.pathname===`/watch`?n=t.searchParams.get(`v`):(e===`shorts`||e===`embed`||e===`live`)&&(n=r??null)}if(!n||!Zn.test(n))return;let r=t.searchParams.get(`start`)??t.searchParams.get(`t`),i=r?$n(r):void 0;return{videoId:n,startSeconds:i}}function $n(e){if(/^\d+$/.test(e))return Number(e);let t=/^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/.exec(e);if(!(!t||!t[1]&&!t[2]&&!t[3]))return Number(t[1]??0)*3600+Number(t[2]??0)*60+Number(t[3]??0)}const er=[e=>{let t=Qn(e);if(!t)return;let n=t.startSeconds?`?start=${t.startSeconds}`:``;return{key:`youtube:${t.videoId}:${t.startSeconds??0}`,render:()=>{let e=document.createElement(`iframe`);return e.src=`https://www.youtube-nocookie.com/embed/${t.videoId}${n}`,e.title=`YouTube video`,e.className=`md-embed md-embed-youtube`,e.dataset.testid=`youtube-embed`,e.loading=`lazy`,e.referrerPolicy=`strict-origin-when-cross-origin`,e.setAttribute(`frameborder`,`0`),e.allow=`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen`,e.allowFullscreen=!0,e}}},qn];function tr(e){for(let t of er){let n=t(e);if(n)return n}}function nr(e){return/^https?:\/\//i.test(e)?e:void 0}function rr(e,t,n){let r=tr(e);if(r){let e=document.createElement(`span`);return e.className=`md-image-preview md-image-preview-embed`,e.appendChild(r.render()),e}let i=(n.resolveImageUrl??nr)(e);if(!i)return;let a=document.createElement(`span`);a.className=`md-image-preview md-image-preview-img`,a.dataset.testid=`image-preview`;let o=document.createElement(`img`);return o.src=i,o.alt=t,o.draggable=!1,a.appendChild(o),a}function ir(e){return t=>{let n=t.attrs,r=document.createElement(`span`);r.className=`md-image-view`;let i=document.createElement(`span`);i.className=`md-image-view-content`,r.appendChild(i);let a=rr(n.src,n.alt,e);return a&&(a.contentEditable=`false`,r.appendChild(a)),{dom:r,contentDOM:i,ignoreMutation:e=>!i.contains(e.target)}}}function ar(e){return e?Array.from(e.files).filter(e=>e.type.startsWith(`image/`)):[]}const or=e=>{console.error(`[meowdown] failed to save pasted image:`,e)};async function sr(e,t,n,r=or,i){let a=i;for(let i of t){let t;try{t=await n(i)}catch(e){r(e,i);continue}if(!t||e.isDestroyed)continue;let o=``,s=a==null?e.state.tr.insertText(o):e.state.tr.insertText(o,a);e.dispatch(s),a!=null&&(a+=o.length)}}function cr(e){return new v({key:new y(`image-input`),props:{handlePaste:(t,n)=>{let r=ar(n.clipboardData),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(sr(t,r,i,a),!0)},handleDrop:(t,n)=>{let r=ar(n.dataTransfer),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(sr(t,r,i,a,t.posAtCoords({left:n.clientX,top:n.clientY})?.pos),!0)}}})}function lr(e={}){return g(u({name:`mdImageView`,constructor:ir(e)}),_(f(cr(e)),t.high))}const ur=new y(`meowdown-image-click`);function dr(e,t){let n=C(e,t,`mdImageSource`);if(!n)return;let{src:r,alt:i}=n.mark.attrs;return{from:n.from,to:n.to,src:r,alt:i}}function fr(e){return f(new v({key:ur,props:{handleClick:(t,n,r)=>{let i=r.target?.closest?.(`.md-image-preview`);if(!i)return!1;let a=i.closest(`.md-image-view`)?.querySelector(`.md-image-view-content`);if(!a)return!1;let o=dr(t.state,t.posAtDOM(a,0));return o?(e({src:o.src,alt:o.alt,event:r}),!0):!1}}}))}const pr=new y(`meowdown-embed-paste`);function mr(e){let t=e.trim();if(!(!t||/\s/.test(t)))return tr(t)?t:void 0}function hr(e,t){return e.clipboardData?.getData(`text/plain`)||t.content.textBetween(0,t.content.size,`
|
|
3
|
-
`)}function
|
|
1
|
+
import{Priority as e,Priority as t,createMarkBuilders as n,createNodeBuilders as r,defineBaseCommands as i,defineBaseKeymap as a,defineCommands as o,defineHistory as s,defineKeymap as c,defineMarkSpec as l,defineMarkView as u,defineNodeAttr as d,defineNodeSpec as f,definePlugin as p,getMarkRange as m,getMarkType as ee,getNodeType as te,isApple as ne,isAtBlockStart as re,isTextSelection as h,toggleNode as ie,union as g,unsetBlockType as ae,withPriority as oe,withPriority as _,withSkipCodeBlock as se}from"@prosekit/core";import{defineBlockquote as ce}from"@prosekit/extensions/blockquote";import{defineCodeBlock as le,defineCodeBlockHighlight as ue}from"@prosekit/extensions/code-block";import{defineDoc as de}from"@prosekit/extensions/doc";import{defineGapCursor as fe}from"@prosekit/extensions/gap-cursor";import{defineModClickPrevention as pe}from"@prosekit/extensions/mod-click-prevention";import{defineText as me}from"@prosekit/extensions/text";import{defineVirtualSelection as he}from"@prosekit/extensions/virtual-selection";import{Plugin as v,PluginKey as y,TextSelection as b}from"@prosekit/pm/state";import{Decoration as ge,DecorationSet as x}from"@prosekit/pm/view";import{LanguageDescription as _e}from"@codemirror/language";import{languages as ve}from"@codemirror/language-data";import{classHighlighter as ye}from"@lezer/highlight";import{createParser as be}from"prosemirror-highlight/lezer";import{defineHeadingCommands as xe,defineHeadingInputRule as Se,defineHeadingSpec as Ce}from"@prosekit/extensions/heading";import{defineHorizontalRule as we}from"@prosekit/extensions/horizontal-rule";import{ReplaceStep as Te,Step as Ee,StepResult as De,Transform as Oe}from"@prosekit/pm/transform";import{Mark as ke}from"@prosekit/pm/model";import{GFM as Ae,parser as je}from"@lezer/markdown";import{once as Me}from"@ocavue/utils";import{defineList as Ne}from"@prosekit/extensions/list";import{defineParagraphCommands as Pe,defineParagraphKeymap as Fe}from"@prosekit/extensions/paragraph";import{defineTableCellSpec as Ie,defineTableCommands as Le,defineTableDropIndicator as Re,defineTableEditingPlugin as ze,defineTableHeaderCellSpec as Be,defineTableRowSpec as Ve,defineTableSpec as He,deleteTable as Ue,isCellSelection as We}from"@prosekit/extensions/table";import{closeHistory as Ge}from"@prosekit/pm/history";import{definePlaceholder as Ke}from"@prosekit/extensions/placeholder";import{defineReadonly as qe}from"@prosekit/extensions/readonly";function S(e,t,n){let r=e.doc.content.size;if(t<0||t>r)return;let i=e.doc.resolve(t);if(!(!i.parent.isTextblock||i.parent.type.spec.code))return m(i,n)}const Je=new Set([`mdMark`,`mdLinkUri`]),Ye=new Set([`mdImageSource`,`mdWikilinkSource`]),Xe=new y(`mark-mode`);function Ze(e){return new v({key:Xe,state:{init:()=>e,apply:(e,t)=>t},props:{attributes:{"data-mark-mode":e},decorations:e===`focus`?e=>tt(e):void 0,clipboardTextSerializer:e===`show`?void 0:et}})}function Qe(e){return p(Ze(e))}function $e(e){return Xe.getState(e)}function et(e){let t=[];return e.content.forEach(e=>{let n=[];e.descendants(e=>!e.isText||!e.text?!0:(!e.marks.some(e=>Ye.has(e.type.name))&&e.marks.some(e=>Je.has(e.type.name))||n.push(e.text),!1)),t.push(n.join(``))}),t.join(`
|
|
2
|
+
`)}function tt(e){let{selection:t}=e;if(!t.empty)return x.empty;let n=t.$head,{parent:r}=n;if(!r.isTextblock||r.type.spec.code)return x.empty;let i=m(n,ee(e.schema,`mdPack`));return i?x.create(e.doc,[ge.inline(i.from,i.to,{class:`show`})]):x.empty}function C(e,t){let n=$e(t);return n?e.flatMap(e=>e.modes.includes(n)?[e.name]:[]):[]}function w(e,t,n){for(let r of n){let n=S(e,t,r);if(n)return n}}function T(e,t,n){let r=w(e,t,n);return r&&r.to===t?r:void 0}function E(e,t,n){let r=w(e,t,n);return r&&r.from===t?r:void 0}function D(e,t){let{from:n,to:r,empty:i}=e.selection;if(i)return;let a=w(e,n,t);return a&&a.from===n&&a.to===r?a:void 0}function nt(e,t){return b.create(e.doc,t.from,t.to)}function rt(e){return(t,n)=>{let r=C(e,t);if(r.length===0||!h(t.selection))return!1;let i=t.selection;if(i.empty){let e=E(t,i.from,r);if(e)return n?.(t.tr.setSelection(nt(t,e))),!0;if(T(t,i.from,r)){let e=t.doc.resolve(i.from);return i.from>=e.end()?!1:(n?.(t.tr.setSelection(b.create(t.doc,i.from+1))),!0)}return!1}let a=D(t,r);return a?(n?.(t.tr.setSelection(b.create(t.doc,a.to))),!0):!1}}function it(e){return(t,n)=>{let r=C(e,t);if(r.length===0||!h(t.selection))return!1;let i=t.selection;if(i.empty){let e=T(t,i.from,r);return e?(n?.(t.tr.setSelection(nt(t,e))),!0):!1}let a=D(t,r);return a?(n?.(t.tr.setSelection(b.create(t.doc,a.from))),!0):!1}}function at(e){return(t,n)=>{let r=C(e,t);if(r.length===0||!t.selection.empty)return!1;let i=t.selection.from,a=T(t,i,r);return a?(n?.(t.tr.delete(a.from,a.to)),!0):!E(t,i,r)||i<=t.doc.resolve(i).start()?!1:(n?.(t.tr.delete(i-1,i)),!0)}}function ot(e){return(t,n)=>{let r=C(e,t);if(r.length===0||!t.selection.empty)return!1;let i=t.selection.from,a=E(t,i,r);return a?(n?.(t.tr.delete(a.from,a.to)),!0):!T(t,i,r)||i>=t.doc.resolve(i).end()?!1:(n?.(t.tr.delete(i,i+1)),!0)}}function st(e,t){return new v({key:new y(`atomic-mark-selection-${t}`),props:{decorations:n=>{let r=C(e,n);if(r.length===0)return;let i=D(n,r);if(i)return x.create(n.doc,[ge.inline(i.from,i.to,{class:t})])}}})}function ct({marks:e,selectedClass:n}){return g(_(c({ArrowRight:rt(e),ArrowLeft:it(e),Backspace:at(e),Delete:ot(e)}),t.high),p(st(e,n)))}const O=new Map;async function lt(e){let t=_e.matchLanguageName(ve,e,!0);if(!t){O.set(e,null);return}let n=t.support;if(!n)try{n=await t.load()}catch(t){console.error(`[meowdown] Failed to load language "${e}":`,t),O.set(e,null)}if(O.has(e))return;if(!n){O.set(e,null);return}let r=be({parse:e=>n.language.parser.parse(e.content),highlighter:ye});O.set(e,r)}const ut=e=>{let t=e.language?.trim();if(!t)return[];let n=O.get(t);return n?n(e):n===null?[]:lt(t)};function dt(){return ue({parser:ut,nodeTypes:[`codeBlock`]})}function ft(){return d({type:`doc`,attr:`frontmatter`,default:null})}function pt(){return f({name:`heading`,whitespace:`pre`})}function mt(){return d({type:`heading`,attr:`setextUnderline`,default:null,toDOM:e=>e==null?null:[`data-setext-underline`,String(e)],parseDOM:e=>{let t=e.getAttribute(`data-setext-underline`);if(t==null)return null;let n=Number.parseInt(t,10);return Number.isSafeInteger(n)&&n>0?n:null}})}function k(e){return se(ie({type:`heading`,attrs:{level:e}}))}const ht=(e,t,n)=>re(e,n)?.parent.type.name===`heading`?ae()(e,t,n):!1;function gt(){return c({"Mod-1":k(1),"Mod-2":k(2),"Mod-3":k(3),"Mod-4":k(4),"Mod-5":k(5),"Mod-6":k(6),Backspace:ht})}function _t(){return g(Ce(),pt(),mt(),Se(),xe(),gt())}function vt(){return d({type:`horizontalRule`,attr:`marker`,default:null,toDOM:e=>e?[`data-hr-marker`,e]:null,parseDOM:e=>e.getAttribute(`data-hr-marker`)})}function yt(){return g(we(),vt())}function bt(e){let[t,n,r]=e;return[t,n,r.map(e=>e.toJSON())]}function xt(e,t){let[n,r,i]=t;return[n,r,i.map(t=>ke.fromJSON(e,t))]}var A=class e extends Ee{constructor(e){super(),this.chunks=e}apply(e){if(this.chunks.length===0)return De.ok(e);let t=e.content.size,n;for(let[r,i,a]of this.chunks){if(r>=i)continue;let o=Math.max(0,Math.min(r,t)),s=Math.max(o,Math.min(i,t));o>=s||e.nodesBetween(o,s,(t,r)=>{if(!t.isText)return!0;let i=Math.max(o,r),c=Math.min(s,r+t.nodeSize);if(i>=c)return!1;let l=t.marks;for(let t of l)t.isInSet(a)||(n??=new Oe(e),n.removeMark(i,c,t));for(let t of a)t.isInSet(l)||(n??=new Oe(e),n.addMark(i,c,t));return!1})}return De.ok(n?n.doc:e)}invert(e){if(this.chunks.length===0)return St;let t=this.chunks[0][0],n=this.chunks[0][1];for(let[,e]of this.chunks)e>n&&(n=e);let r=e.content.size,i=Math.max(0,Math.min(t,r)),a=Math.max(i,Math.min(n,r));return new Te(i,a,e.slice(i,a),!1)}map(e){return null}toJSON(){return{stepType:`batchSetMark`,chunks:this.chunks.map(bt)}}static fromJSON(t,n){let r=n.chunks;return new e(r.map(e=>xt(t,e)))}};Ee.jsonID(`batchSetMark`,A);const St=new A([]),Ct=new Set([`com`,`br`,`net`,`jp`,`org`,`in`,`de`,`ru`,`it`,`fr`]),wt=/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;function Tt(e){let t=e.indexOf(`/`);return t===-1?e:e.slice(0,t)}function Et(e){let t=e.split(`.`);if(t.length<2)return!1;let n=t[t.length-1].toLowerCase();if(!Ct.has(n)||t[t.length-2].length<3)return!1;for(let e of t)if(e.length>63||!wt.test(e))return!1;return!0}function Dt(e){return e===32||e===9||e===10||e===13}const Ot=/^[a-z0-9-]+(?:\.[a-z0-9-]+)+(?:\/[^\s<]*)?/i,kt=/[\s(*_~]/;function At(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===45}function jt(e,t,n){let r=0;for(let i=0;i<t;i++)e[i]===n&&r++;return r}function Mt(e){let t=e.length;for(;;){let n=e[t-1];if(/[?!.,:*_~]/.test(n)||n===`)`&&jt(e,t,`)`)>jt(e,t,`(`))t--;else if(n===`;`){let n=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(e.slice(0,t));if(!n)break;t=n.index}else break}return t}const Nt={parseInline:[{name:`BareAutolink`,before:`Link`,parse(e,t,n){if(!At(t)||e.hasOpenLink)return-1;let r=e.slice(n-1,n);if(r!==``&&!kt.test(r))return-1;let i=Ot.exec(e.slice(n,e.end));if(!i)return-1;let a=Mt(i[0]);return a===0||!Et(Tt(i[0].slice(0,a)))?-1:e.addElement(e.elt(`URL`,n,n+a))}}]};function Pt(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122||e===45||e===95||e>127&&/[\p{L}\p{N}]/u.test(String.fromCharCode(e))}function Ft(e){return e>=65&&e<=90||e>=97&&e<=122||e>127&&/\p{L}/u.test(String.fromCharCode(e))}const It={defineNodes:[{name:`Hashtag`}],parseInline:[{name:`Hashtag`,parse(e,t,n){if(t!==35||!/\s|^$/.test(e.slice(n-1,n)))return-1;let r=n+1,i=!1;for(;r<e.end;){let t=e.char(r);if(!Pt(t))break;i||=Ft(t),r++}return i?e.addElement(e.elt(`Hashtag`,n,r)):-1}}]},Lt={defineNodes:[{name:`Wikilink`},{name:`WikilinkMark`}],parseInline:[{name:`Wikilink`,before:`Link`,parse(e,t,n){if(t!==91||e.char(n+1)!==91)return-1;let r=!1;for(let t=n+2;t<e.end-1;t++){let i=e.char(t);if(i===93){if(e.char(t+1)!==93||!r)return-1;let i=t+2;return e.addElement(e.elt(`Wikilink`,n,i,[e.elt(`WikilinkMark`,n,n+2),e.elt(`WikilinkMark`,t,i)]))}if(i===91||i===10)return-1;i!==32&&i!==9&&(r=!0)}return-1}}]};function Rt(e){return e.end}const j=je.configure([Ae,It,Lt,Nt]),zt=j.configure({parseInline:[{name:`SkipInline`,before:`Escape`,parse:Rt}]});function M(e){return j.parseInline(e,0)}function N(e,t,n=[]){for(let r of e)t(r)&&n.push(r),N(r.children,t,n);return n}function Bt(e){let t={};for(let n of e.nodeSet.types)t[n.name]=n.id;return t}const P=Bt(j);function Vt(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}function Ht(e){let t=e.replace(/^\[\[/,``).replace(/\]\]$/,``),n=t.indexOf(`|`);return n<0?{target:t.trim(),display:``}:{target:t.slice(0,n).trim(),display:t.slice(n+1).trim()}}function Ut(){return e=>{let t=e.attrs,n=document.createElement(`span`);n.className=`md-wikilink-view`;let r=document.createElement(`span`);n.appendChild(r);let i=document.createElement(`span`);return i.className=`md-wikilink-label`,i.contentEditable=`false`,i.dataset.testid=`wikilink`,i.textContent=t.display||t.target,n.appendChild(i),{dom:n,contentDOM:r,ignoreMutation:e=>!r.contains(e.target)}}}function Wt(){return u({name:`mdWikilinkView`,constructor:Ut()})}const F=new Map([[P.Emphasis,`mdEm`],[P.StrongEmphasis,`mdStrong`],[P.InlineCode,`mdCode`],[P.Strikethrough,`mdDel`],[P.EmphasisMark,`mdMark`],[P.CodeMark,`mdMark`],[P.LinkMark,`mdMark`],[P.StrikethroughMark,`mdMark`],[P.URL,`mdLinkUri`],[P.Hashtag,`mdTag`],[P.WikilinkMark,`mdMark`]]);function Gt(e,t){let n=M(t),r=[];return I(n,[],0,t.length,t,e,r),r}function Kt(e){if(/^[a-z][a-z0-9+.-]*:/i.test(e))return e;if(/^[^\s@]+@[^\s@]+$/.test(e))return`mailto:${e}`;if(/^www\./i.test(e)||Et(Tt(e)))return`https://${e}`}function I(e,t,n,r,i,a,o){let s=n;for(let n of e){n.from>s&&R(o,s,n.from,t);let e=n.type;if(e===P.Link)qt(n,t,i,a,o);else if(e===P.Image)Jt(n,t,i,a,o);else if(e===P.Wikilink)L(n,t,i,a,o);else if(e===P.URL){let e=Kt(i.slice(n.from,n.to)),r=e?a.mdLinkText.create({href:e}):a.mdLinkUri.create();R(o,n.from,n.to,[...t,r])}else{let r;e===P.Emphasis?r=`italic`:e===P.StrongEmphasis?r=`bold`:e===P.InlineCode?r=`code`:e===P.Strikethrough?r=`strike`:e===P.Autolink&&(r=`autolink`);let s=r?[...t,a.mdPack.create({key:r})]:t,c=F.get(e),l=c?[...s,a[c].create()]:s;n.children.length===0?R(o,n.from,n.to,l):I(n.children,l,n.from,n.to,i,a,o)}s=n.to}s<r&&R(o,s,r,t)}function qt(e,t,n,r,i){let a=-1,o=null,s=0;for(let t of e.children)t.type===P.LinkMark?(s++,s===2&&(a=t.from)):t.type===P.URL&&o===null&&(o=t);let c=o?n.slice(o.from,o.to):``,l=c?r.mdLinkText.create({href:c}):null,u=e=>a>=0&&e<a&&l!==null,d=r.mdPack.create({key:`link_${c}`}),f=[...t,d],p=e.from;for(let t of e.children){if(t.from>p){let e=u(p)?[...f,l]:f;R(i,p,t.from,e)}let e=u(t.from)?[...f,l]:f;if(t.type===P.Wikilink){L(t,e,n,r,i),p=t.to;continue}let a=F.get(t.type),o=a?[...e,r[a].create()]:e;t.children.length===0?R(i,t.from,t.to,o):I(t.children,o,t.from,t.to,n,r,i),p=t.to}p<e.to&&R(i,p,e.to,f)}function Jt(e,t,n,r,i){let a=e.children.find(e=>e.type===P.URL);if(!a){qt(e,t,n,r,i);return}let o=e.children.filter(e=>e.type===P.LinkMark),s=n.slice(a.from,a.to),c=o.length>=2?n.slice(o[0].to,o[1].from):``,l=r.mdImageSource.create({src:s,alt:c}),u=r.mdImageView.create({src:s,alt:c}),d=r.mdPack.create({key:`image_${s}`}),f=e.to-1,p=e=>e>=f?[...t,d,l,u]:[...t,d,l],m=e.from;for(let t of e.children){t.from>m&&R(i,m,t.from,p(m));let e=F.get(t.type),a=e?[...p(t.from),r[e].create()]:p(t.from);t.children.length===0?R(i,t.from,t.to,a):I(t.children,a,t.from,t.to,n,r,i),m=t.to}m<e.to&&R(i,m,e.to,p(m))}function L(e,t,n,r,i){let{target:a,display:o}=Ht(n.slice(e.from,e.to)),s=r.mdWikilinkSource.create({target:a}),c=r.mdWikilinkView.create({target:a,display:o}),l=e.to-1,u=e=>e>=l?[...t,s,c]:[...t,s],d=e.from;for(let t of e.children){t.from>d&&R(i,d,t.from,u(d));let e=r.mdMark.create();t.from<l&&t.to>l?(R(i,t.from,l,[...u(t.from),e]),R(i,l,t.to,[...u(l),e])):R(i,t.from,t.to,[...u(t.from),e]),d=t.to}d<e.to&&R(i,d,e.to,u(d))}function R(e,t,n,r){if(t>=n)return;let i=e.at(-1);if(i&&i[1]===t&&Vt(i[2],r)){e[e.length-1]=[i[0],n,i[2]];return}e.push([t,n,r])}const Yt=Me(()=>{let e=Kn().schema;if(e==null)throw Error(`Unexpected empty schema`);return e}),Xt=Me(()=>r(Yt())),z=`meowdown_mark_builders`;function Zt(e){let t=e.cached[z];if(t)return t;let r=n(e);return e.cached[z]=r,r}const B=`inline-marks-applied`,Qt=new WeakMap;let $t=0,en=0;function tn(e,t,n){let r=Qt.get(e);if(r?en++:($t++,r=Gt(Zt(n),e.textContent),Qt.set(e,r)),t===0)return r;let i=[];for(let[e,n,a]of r)i.push([e+t,n+t,a]);return i}function nn(e,t){let n=1/0,r=-1/0;for(let t of e)for(let e of t.mapping.maps)e.forEach((e,t,i,a)=>{i<n&&(n=i),a>r&&(r=a)});let i=t.doc.content.size;return n>r?{from:0,to:i}:{from:Math.max(0,n),to:Math.min(i,r)}}function rn(e,t){let n=[];return e.doc.nodesBetween(t.from,t.to,(t,r)=>{if(t.type.spec.code)return!1;if(!t.isTextblock)return!0;if(t.childCount===0)return!1;let i=tn(t,r+1,e.schema);return i.length>0&&n.push(...i),!1}),n}function an(){return new v({key:new y(`inline-mark`),appendTransaction(e,t,n){for(let t of e)if(t.getMeta(B))return null;let r=rn(n,nn(e,n));if(r.length===0)return null;let i=n.tr.step(new A(r));return i.setMeta(B,!0),i.setMeta(`addToHistory`,!1),i},view(e){return e.dispatch(on(e.state)),{}}})}function on(e){return e.tr.setMeta(`inline-marks-trigger`,!0)}function sn(){return p(an())}function cn(){return l({name:`mdImageView`,inclusive:!1,attrs:{src:{default:``},alt:{default:``}},toDOM:()=>[`span`,{class:`md-image-anchor`},0],parseDOM:[{tag:`span.md-image-anchor`}]})}function ln(){return l({name:`mdImageSource`,inclusive:!1,attrs:{src:{default:``},alt:{default:``}},toDOM:()=>[`span`,{class:`md-image-source`},0],parseDOM:[{tag:`span.md-image-source`}]})}function un(){return l({name:`mdMark`,inclusive:!1,toDOM:()=>[`span`,{class:`md-mark`},0],parseDOM:[{tag:`span.md-mark`}]})}function dn(){return l({name:`mdEm`,toDOM:()=>[`em`,0],parseDOM:[{tag:`em`}]})}function fn(){return l({name:`mdStrong`,toDOM:()=>[`strong`,0],parseDOM:[{tag:`strong`}]})}function pn(){return l({name:`mdCode`,toDOM:()=>[`code`,0],parseDOM:[{tag:`code`}]})}function mn(){return l({name:`mdLinkText`,inclusive:!1,attrs:{href:{default:``}},toDOM:e=>[`a`,{class:`md-link`,href:e.attrs.href},0],parseDOM:[{tag:`a`,getAttrs:e=>({href:e.getAttribute(`href`)??``})}]})}function hn(){return l({name:`mdLinkUri`,inclusive:!1,toDOM:()=>[`span`,{class:`md-link-uri`},0],parseDOM:[{tag:`span.md-link-uri`}]})}function gn(){return l({name:`mdDel`,toDOM:()=>[`del`,0],parseDOM:[{tag:`del`}]})}function _n(){return l({name:`mdTag`,toDOM:()=>[`span`,{class:`md-tag`},0],parseDOM:[{tag:`span.md-tag`}]})}function vn(){return l({name:`mdWikilinkSource`,inclusive:!1,attrs:{target:{default:``}},toDOM:()=>[`span`,{class:`md-wikilink-source`},0],parseDOM:[{tag:`span.md-wikilink-source`}]})}function yn(){return l({name:`mdWikilinkView`,inclusive:!1,attrs:{target:{default:``},display:{default:``}},toDOM:()=>[`span`,{class:`md-wikilink-anchor`},0],parseDOM:[{tag:`span.md-wikilink-anchor`}]})}function bn(){return l({name:`mdPack`,excludes:``,inclusive:!1,attrs:{key:{default:``}},toDOM:e=>[`span`,{class:`md-pack`,"data-key":e.attrs.key},0],parseDOM:[{tag:`span.md-pack`}]})}function xn(){return g(un(),dn(),fn(),pn(),mn(),hn(),gn(),_n(),vn(),yn(),ln(),cn(),bn())}function Sn(e,t=0){let n=t,r=0;for(let t=0;t<e.length;t++)e.charCodeAt(t)===96?(r++,r>n&&(n=r)):r=0;return n}const V={em:{node:P.Emphasis,delim:`*`},strong:{node:P.StrongEmphasis,delim:`**`},code:{node:P.InlineCode,delim:"`"},del:{node:P.Strikethrough,delim:`~~`}},Cn=new Set([P.EmphasisMark,P.CodeMark,P.LinkMark,P.StrikethroughMark]);function H(e){return[e.children[0],e.children.at(-1)]}function U(e){let{type:t,children:n}=e;if(t===P.Emphasis||t===P.StrongEmphasis||t===P.Strikethrough)return[n[0].to,n.at(-1).from];if(t===P.Link||t===P.Image){let e=n.find((e,t)=>t>0&&e.type===P.LinkMark);return e?[n[0].to,e.from]:null}return null}function W(e,t,n){for(let r of e){if(r.to<=t||r.from>=n||t<=r.from&&r.to<=n)continue;let i=U(r);return i&&i[0]<=t&&n<=i[1]?W(r.children,t,n):W(e,Math.min(t,r.from),Math.max(n,r.to))}return[t,n]}function wn(e,t,n){for(let r of e)if(!(r.to<=t||r.from>=n)&&(t>r.from||r.to>n))return wn(e,Math.min(t,r.from),Math.max(n,r.to));return[t,n]}const G=e=>e===` `||e===` `;function Tn(e,t,n){for(;t<n&&G(e[t]);)t++;for(;n>t&&G(e[n-1]);)n--;return[t,n]}function En(e,t,n,r){let i=N(M(e),e=>e.type===r.node||Cn.has(e.type));for(let r=t;r<n;r++)if(!G(e[r])&&i.every(e=>!(e.from<=r&&r<e.to)))return!1;return!0}function Dn(e,t,n,r,i){let a=M(e),o=N(a,e=>e.type===r.node);return i?An(e,o,t,n):On(e,a,o,t,n,r)}function On(e,t,n,r,i,a){for(let e=0;e!==i-r;){e=i-r,[r,i]=W(t,r,i);for(let e of n)e.to===r&&(r=e.from),e.from===i&&(i=e.to)}let o=[];for(let e of n)if(r<=e.from&&e.to<=i){let[t,n]=H(e);o.push({from:t.from,to:t.to,insert:``}),o.push({from:n.from,to:n.to,insert:``})}let[s,c]=kn(e,r,i,o,a);return o.push({from:r,to:r,insert:s},{from:i,to:i,insert:c}),o}function kn(e,t,n,r,i){if(i.node!==P.InlineCode)return[i.delim,i.delim];let a=e.slice(t,n);for(let e of[...r].sort((e,t)=>t.from-e.from))a=a.slice(0,e.from-t)+a.slice(e.to-t);let o="`".repeat(Sn(a)+1),s=a.startsWith("`")||a.endsWith("`")?` `:``;return[o+s,s+o]}function An(e,t,n,r){let i=[];for(let a of t){if(a.to<=n||a.from>=r)continue;let[t,o]=H(a),s=Math.max(n,t.to),c=Math.min(r,o.from);for(s>=c&&([s,c]=[t.to,o.from]),[s,c]=wn(a.children.slice(1,-1),s,c);s>t.to&&G(e[s-1]);)s--;for(;c<o.from&&G(e[c]);)c++;s>t.to?i.push({from:s,to:s,insert:e.slice(o.from,o.to)}):i.push({from:t.from,to:t.to,insert:``}),c<o.from?i.push({from:c,to:c,insert:e.slice(t.from,t.to)}):i.push({from:o.from,to:o.to,insert:``})}return i}function jn(e,t,n){let{delim:r}=n,i=r.length;if(e.slice(t-i,t)===r&&e.startsWith(r,t)&&e[t-i-1]!==r[0]&&e[t+i]!==r[0])return{kind:`unwrap`,from:t-i,to:t+i};let a=M(e),o=N(a,e=>e.type===n.node).findLast(e=>e.from<=t&&t<=e.to);if(o){let[e,n]=H(o);return{kind:`move`,pos:t===o.from?e.to:t===o.to?n.from:o.to}}return Mn(a,t)||e[t-1]===r[0]||e[t]===r[0]?null:{kind:`insert`,pos:t}}function Mn(e,t){for(let n of e)if(n.from<t&&t<n.to){let e=U(n);return!e||t<e[0]||t>e[1]?!0:Mn(n.children,t)}return!1}function K(e){return(t,n)=>{if(t.selection.empty)return Nn(e,t,n);let{from:r,to:i,anchor:a,head:o}=t.selection,s=[];t.doc.nodesBetween(r,i,(t,n)=>{if(t.type.spec.code)return!1;if(!t.isTextblock)return!0;let a=t.textContent,o=n+1,[c,l]=Tn(a,Math.max(r-o,0),Math.min(i-o,a.length));return c<l&&s.push({text:a,base:o,from:c,to:l,active:En(a,c,l,e)}),!1});let c=s.length>0&&s.every(e=>e.active),l=s.filter(e=>c||!e.active).flatMap(t=>Dn(t.text,t.from,t.to,e,c).map(e=>({from:e.from+t.base,to:e.to+t.base,insert:e.insert})));if(l.length===0)return!1;if(n){let e=t.tr;l.sort((e,t)=>t.from-e.from||t.to-e.to);for(let t of l)t.insert?e.insertText(t.insert,t.from,t.to):e.delete(t.from,t.to);e.setSelection(b.create(e.doc,e.mapping.map(a,a<=o?1:-1),e.mapping.map(o,o<a?1:-1))),n(e.scrollIntoView())}return!0}}function Nn(e,t,n){let{$from:r}=t.selection,i=r.parent;if(!i.isTextblock||i.type.spec.code)return!1;let a=jn(i.textContent,r.parentOffset,e);if(!a)return!1;if(n){let i=r.start(),o=t.tr;a.kind===`unwrap`&&o.delete(i+a.from,i+a.to),a.kind===`move`&&o.setSelection(b.create(o.doc,i+a.pos)),a.kind===`insert`&&(o.insertText(e.delim+e.delim,i+a.pos),o.setSelection(b.create(o.doc,i+a.pos+e.delim.length))),n(o.scrollIntoView())}return!0}function Pn(){return o({toggleEm:()=>K(V.em),toggleStrong:()=>K(V.strong),toggleCode:()=>K(V.code),toggleDel:()=>K(V.del)})}function Fn(){return c({"Mod-b":K(V.strong),"Mod-i":K(V.em),"Mod-e":K(V.code),"Mod-Shift-x":K(V.del)})}function In(){return g(Pn(),Fn())}function Ln(){return d({type:`list`,attr:`marker`,default:null,splittable:!0,toDOM:e=>e===`)`||e===`*`||e===`+`?[`data-list-marker`,e]:null,parseDOM:e=>{let t=e.getAttribute(`data-list-marker`);return t===`)`||t===`*`||t===`+`?t:null}})}function Rn(){return d({type:`list`,attr:`taskMarker`,default:null,splittable:!0,toDOM:e=>e===`X`?[`data-list-task-marker`,e]:null,parseDOM:e=>e.getAttribute(`data-list-task-marker`)===`X`?`X`:null})}function zn(){return g(Ne(),Ln(),Rn())}function Bn(){return f({name:`paragraph`,content:`inline*`,group:`block`,whitespace:`pre`,parseDOM:[{tag:`p`}],toDOM(){return[`p`,0]}})}function Vn(){return g(_(Bn(),t.highest),Pe(),Fe())}const Hn=(e,t)=>{let{selection:n}=e;return!We(n)||!n.isColSelection()||!n.isRowSelection()?!1:Ue(e,t)};function Un(){return _(c({Backspace:Hn,Delete:Hn}),t.high)}function Wn(){return g(He(),Ve(),Ie(),Be(),ze({allowTableNodeSelection:!0}),Le(),Re(),Un())}function Gn(){return g(Vn(),de(),ft(),me(),ce(),zn(),_t(),Wn(),le(),yt(),xn(),dt(),sn(),In(),Wt(),ct({marks:[{name:`mdImageSource`,modes:[`hide`]},{name:`mdWikilinkSource`,modes:[`hide`,`focus`,`show`]}],selectedClass:`md-atomic-selected`}),a(),i(),s(),fe(),he(),pe())}function Kn(){return Gn()}function qn(e){let t;return p(new v({key:e.key,props:{handleDOMEvents:{mousedown:e=>{let{from:n,to:r,empty:i}=e.state.selection;return t={from:n,to:r,empty:i},!1}},handleClick:(n,r,i)=>{if(!i.target?.closest?.(e.selector))return!1;let a=e.findHitAt(n.state,r);return!a||!(ne?i.metaKey:i.ctrlKey)&&t?.empty&&t.from>=a.from&&t.to<=a.to?!1:(e.preventDefault&&i.preventDefault(),e.onClick(a.payload,i),!0)}}}))}const Jn=new y(`meowdown-wikilink-click`);function Yn(e,t){let n=S(e,t,`mdWikilinkSource`);if(!n)return;let{target:r}=n.mark.attrs;return{from:n.from,to:n.to,target:r}}function Xn(e){return qn({key:Jn,selector:`.md-wikilink-label, .md-wikilink-source`,preventDefault:!1,findHitAt:(e,t)=>{let n=Yn(e,t);return n?{from:n.from,to:n.to,payload:n.target}:void 0},onClick:(t,n)=>e({target:t,event:n})})}const Zn=new y(`meowdown-link-click`);function Qn(e,t){let n=S(e,t,`mdLinkText`);if(n)return{from:n.from,to:n.to,href:n.mark.attrs.href}}function $n(e){return qn({key:Zn,selector:`.md-link`,preventDefault:!0,findHitAt:(e,t)=>{let n=Qn(e,t);return n?{from:n.from,to:n.to,payload:n.href}:void 0},onClick:(t,n)=>e({href:t,event:n})})}function er(){return typeof window>`u`?!1:window.matchMedia(`(prefers-color-scheme: dark)`).matches}const tr=/^(?:www\.|mobile\.)?(?:twitter\.com|x\.com)$/i,nr=/\/status(?:es)?\/(\d+)/;function rr(e){let t;try{t=new URL(e)}catch{return}if(tr.test(t.hostname))return nr.exec(t.pathname)?.[1]}const ir=e=>{let t=rr(e);if(t)return{key:`tweet:${t}`,render:()=>{let e=er()?`dark`:`light`,n=document.createElement(`iframe`);return n.src=`https://platform.twitter.com/embed/Tweet.html?id=${t}&theme=${e}&dnt=true`,n.title=`Tweet`,n.className=`md-embed md-embed-tweet`,n.dataset.testid=`tweet-embed`,n.loading=`lazy`,n.referrerPolicy=`strict-origin-when-cross-origin`,n.setAttribute(`frameborder`,`0`),ar(n),n}}};function ar(e){let t=t=>{if(t.source===e.contentWindow)try{let n=t.data?.[`twttr.embed`]?.params?.[0]?.height;typeof n==`number`&&(e.style.height=`${n}px`)}catch(e){console.warn(`[meowdown] failed to parse tweet resize message:`,e)}};window.addEventListener(`message`,t);let n=new MutationObserver(()=>{e.isConnected||(window.removeEventListener(`message`,t),n.disconnect())});n.observe(document.body,{childList:!0,subtree:!0})}const or=/^(?:www\.|m\.)?(?:youtube\.com|youtube-nocookie\.com)$/i,sr=/^(?:www\.)?youtu\.be$/i,cr=/^[\w-]{11}$/;function lr(e){let t;try{t=new URL(e)}catch{return}let n=null;if(sr.test(t.hostname))n=t.pathname.slice(1);else if(or.test(t.hostname)){let[,e,r]=t.pathname.split(`/`);t.pathname===`/watch`?n=t.searchParams.get(`v`):(e===`shorts`||e===`embed`||e===`live`)&&(n=r??null)}if(!n||!cr.test(n))return;let r=t.searchParams.get(`start`)??t.searchParams.get(`t`),i=r?ur(r):void 0;return{videoId:n,startSeconds:i}}function ur(e){if(/^\d+$/.test(e))return Number(e);let t=/^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/.exec(e);if(!(!t||!t[1]&&!t[2]&&!t[3]))return Number(t[1]??0)*3600+Number(t[2]??0)*60+Number(t[3]??0)}const dr=[e=>{let t=lr(e);if(!t)return;let n=t.startSeconds?`?start=${t.startSeconds}`:``;return{key:`youtube:${t.videoId}:${t.startSeconds??0}`,render:()=>{let e=document.createElement(`iframe`);return e.src=`https://www.youtube-nocookie.com/embed/${t.videoId}${n}`,e.title=`YouTube video`,e.className=`md-embed md-embed-youtube`,e.dataset.testid=`youtube-embed`,e.loading=`lazy`,e.referrerPolicy=`strict-origin-when-cross-origin`,e.setAttribute(`frameborder`,`0`),e.allow=`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen`,e.allowFullscreen=!0,e}}},ir];function fr(e){for(let t of dr){let n=t(e);if(n)return n}}function pr(e){return/^https?:\/\//i.test(e)?e:void 0}function mr(e,t,n){let r=fr(e);if(r){let e=document.createElement(`span`);return e.className=`md-image-preview md-image-preview-embed`,e.appendChild(r.render()),e}let i=(n.resolveImageUrl??pr)(e);if(!i)return;let a=document.createElement(`span`);a.className=`md-image-preview md-image-preview-img`,a.dataset.testid=`image-preview`;let o=document.createElement(`img`);return o.src=i,o.alt=t,o.draggable=!1,a.appendChild(o),a}function hr(e){return t=>{let n=t.attrs,r=document.createElement(`span`);r.className=`md-image-view`;let i=document.createElement(`span`);i.className=`md-image-view-content`,r.appendChild(i);let a=mr(n.src,n.alt,e);return a&&(a.contentEditable=`false`,r.appendChild(a)),{dom:r,contentDOM:i,ignoreMutation:e=>!i.contains(e.target)}}}function gr(e){return e?Array.from(e.files).filter(e=>e.type.startsWith(`image/`)):[]}const _r=e=>{console.error(`[meowdown] failed to save pasted image:`,e)};async function vr(e,t,n,r=_r,i){let a=i;for(let i of t){let t;try{t=await n(i)}catch(e){r(e,i);continue}if(!t||e.isDestroyed)continue;let o=``,s=a==null?e.state.tr.insertText(o):e.state.tr.insertText(o,a);e.dispatch(s),a!=null&&(a+=o.length)}}function yr(e){return new v({key:new y(`image-input`),props:{handlePaste:(t,n)=>{let r=gr(n.clipboardData),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(vr(t,r,i,a),!0)},handleDrop:(t,n)=>{let r=gr(n.dataTransfer),{onImagePaste:i,onImageSaveError:a}=e;return r.length===0||!i?!1:(vr(t,r,i,a,t.posAtCoords({left:n.clientX,top:n.clientY})?.pos),!0)}}})}function br(e={}){return g(u({name:`mdImageView`,constructor:hr(e)}),_(p(yr(e)),t.high))}const xr=new y(`meowdown-image-click`);function Sr(e,t){let n=S(e,t,`mdImageSource`);if(!n)return;let{src:r,alt:i}=n.mark.attrs;return{from:n.from,to:n.to,src:r,alt:i}}function Cr(e){return p(new v({key:xr,props:{handleClick:(t,n,r)=>{let i=r.target?.closest?.(`.md-image-preview`);if(!i)return!1;let a=i.closest(`.md-image-view`)?.querySelector(`.md-image-view-content`);if(!a)return!1;let o=Sr(t.state,t.posAtDOM(a,0));return o?(e({src:o.src,alt:o.alt,event:r}),!0):!1}}}))}const wr=new y(`meowdown-embed-paste`);function Tr(e){let t=e.trim();if(!(!t||/\s/.test(t)))return fr(t)?t:void 0}function Er(e,t){return e.clipboardData?.getData(`text/plain`)||t.content.textBetween(0,t.content.size,`
|
|
3
|
+
`)}function Dr(e,t){let{from:n,to:r}=e.state.selection;e.dispatch(Ge(e.state.tr.insertText(t,n,r)));let i=e.state.tr.insertText(``,n,n+t.length);e.dispatch(Ge(i))}function Or(){return p(new v({key:wr,props:{handlePaste:(e,t,n)=>{let r=e.state.selection.$from.parent;if(!r.inlineContent||r.type.spec.code)return!1;let i=Er(t,n);if(!i)return!1;let a=Tr(i);return a?(Dr(e,a),!0):!1}}}))}const kr=(e,t)=>{let{$from:n,empty:r}=e.selection;if(!r||n.depth!==1||n.index(0)!==0||n.parent.type.name!==`heading`||n.parentOffset!==n.parent.content.size)return!1;if(t){let r=te(e.schema,`list`),i=te(e.schema,`paragraph`),a=r.create({kind:`bullet`},i.create()),o=n.after(),s=e.tr.insert(o,a);s.setSelection(b.create(s.doc,o+2)),t(s.scrollIntoView())}return!0};function Ar(){return _(c({Enter:kr}),t.high)}const jr={"Mod-b":`Bold`,"Mod-i":`Italic`,"Mod-e":`Inline code`,"Mod-Shift-x":`Strikethrough`,"Mod-1":`Heading 1`,"Mod-2":`Heading 2`,"Mod-3":`Heading 3`,"Mod-4":`Heading 4`,"Mod-5":`Heading 5`,"Mod-6":`Heading 6`},Mr=new Set([`MscGen`,`Xù`,`MsGenny`,`Angular Template`,`Brainfuck`,`Esper`,`Oz`,`Factor`,`Squirrel`,`Yacas`,`mIRC`,`FCL`,`ECL`,`MUMPS`,`Pig`,`Asterisk`,`Z80`]),Nr=ve.map(e=>e.name).filter(e=>!Mr.has(e)).map(e=>({label:e,value:e.toLowerCase()})).concat({label:`Plain text`,value:``}).sort((e,t)=>e.label.localeCompare(t.label));function Pr(e,t={}){let n=new Rr;return t.frontmatter&&Fr(e.attrs.frontmatter,n),zr(e,n),n.finish()}function Fr(e,t){e!==null&&(t.write(`---`),t.write(`
|
|
4
4
|
`),e!==``&&(t.write(e),t.write(`
|
|
5
|
-
`)),t.write(`---`),t.closeBlock())}const
|
|
6
|
-
`+i.repeat(Math.max(1,r))),t.closeBlock();return}t.write(
|
|
5
|
+
`)),t.write(`---`),t.closeBlock())}const Ir=[``,`# `,`## `,`### `,`#### `,`##### `,`###### `];function Lr(e,t){let n=e.attrs,r=n.setextUnderline;if(r!=null&&e.content.size>0&&n.level<=2){J(e,t);let i=n.level===1?`=`:`-`;t.write(`
|
|
6
|
+
`+i.repeat(Math.max(1,r))),t.closeBlock();return}t.write(Ir[n.level]??`# `),J(e,t),t.closeBlock()}var Rr=class{constructor(){this.parts=[],this.linePrefix=``,this.pendingFirst=null,this.atLineStart=!0,this.deferredBlankPrefix=null}write(e){if(e===``)return;if(this.emitDeferredBlankLine(),this.atLineStart&&=(this.parts.push(this.pendingFirst??this.linePrefix),this.pendingFirst=null,!1),!e.includes(`
|
|
7
7
|
`)){this.parts.push(e);return}let t=e.split(`
|
|
8
8
|
`);for(let e=0;e<t.length;e++)e>0&&this.parts.push(`
|
|
9
9
|
`,this.linePrefix),t[e]!==``&&this.parts.push(t[e])}closeBlock(){this.atLineStart&&this.pendingFirst!==null&&(this.emitDeferredBlankLine(),this.parts.push(this.pendingFirst.trimEnd()),this.pendingFirst=null,this.atLineStart=!1),this.atLineStart||this.parts.push(`
|
|
10
10
|
`),this.atLineStart=!0,this.deferredBlankPrefix=this.linePrefix}suppressBlank(){this.deferredBlankPrefix=null}withPrefix(e,t,n){let r=this.linePrefix,i=this.pendingFirst;if(this.linePrefix=r+e,t!==null){let e=i??r;this.pendingFirst=e+t}n(),this.linePrefix=r,this.pendingFirst=t===null?i:null}finish(){return this.parts.join(``).replace(/\s+$/,``)+`
|
|
11
11
|
`}emitDeferredBlankLine(){let e=this.deferredBlankPrefix;e!==null&&(this.parts.push(e.trimEnd(),`
|
|
12
|
-
`),this.deferredBlankPrefix=null)}};function
|
|
12
|
+
`),this.deferredBlankPrefix=null)}};function zr(e,t){switch(e.type.name){case`doc`:q(e,t);return;case`paragraph`:J(e,t),t.closeBlock();return;case`heading`:Lr(e,t);return;case`blockquote`:t.withPrefix(`> `,`> `,()=>q(e,t)),t.closeBlock();return;case`list`:Hr(e,t,Vr(e));return;case`codeBlock`:Ur(e,t);return;case`horizontalRule`:{let{marker:n}=e.attrs;t.write(n||`---`),t.closeBlock();return}case`table`:Wr(e,t);return;case`text`:e.text&&t.write(e.text);return}}function q(e,t,n=!1){let r=e.childCount,i=0;for(;i<r;){let a=e.child(i);if(a.type.name!==`list`){n&&i>0&&t.suppressBlank(),zr(a,t),i++;continue}let o=i+1;for(;o<r&&e.child(o).type.name===`list`;)o++;let s=Br(e,i,o);for(let r=i;r<o;r++)(r===i?n&&i>0:s)&&t.suppressBlank(),Hr(e.child(r),t,s);i=o}}function Br(e,t,n){for(let r=t;r<n;r++)if(!Vr(e.child(r)))return!1;return!0}function Vr(e){let t=e.childCount;for(let n=0;n<t;n++){let t=e.child(n);if(t.type.name!==`list`&&!(t.type.name===`paragraph`&&n===0))return!1}return!0}function J(e,t){let n=e.childCount;for(let r=0;r<n;r++){let n=e.child(r);n.isText&&n.text&&t.write(n.text)}}function Hr(e,t,n){let r=e.attrs,i=r.marker===`*`||r.marker===`+`?r.marker:`-`,a=r.marker===`)`?`)`:`.`,o=r.taskMarker===`X`?`X`:`x`,s=r.kind===`ordered`?`${r.order??1}${a} `:r.kind===`task`?`${i} [${r.checked?o:` `}] `:`${i} `,c=` `.repeat(r.kind===`task`?2:s.length);t.withPrefix(c,s,()=>q(e,t,n)),t.closeBlock()}function Ur(e,t){let n=e.attrs.language||``,r=e.textContent,i="`".repeat(Sn(r,2)+1);t.write(i),n&&t.write(n),t.write(`
|
|
13
13
|
`),r&&(t.write(r),t.write(`
|
|
14
|
-
`)),t.write(i),t.closeBlock()}function
|
|
14
|
+
`)),t.write(i),t.closeBlock()}function Wr(e,t){let n=e.childCount;if(n===0)return;let r=[],i=0,a=-1;for(let t=0;t<n;t++){let n=e.child(t),o=[],s=!1;for(let e=0;e<n.childCount;e++){let t=n.child(e);t.type.name===`tableHeaderCell`&&(s=!0),o.push(Kr(t))}s&&a<0&&(a=t),o.length>i&&(i=o.length),r.push(o)}if(i===0)return;let o=`| `+Array(i).fill(`---`).join(` | `)+` |`,s=a>=0?r[a]:Array(i).fill(``);t.write(Gr(s,i)),t.write(`
|
|
15
15
|
`),t.write(o);for(let e=0;e<n;e++)e!==a&&(t.write(`
|
|
16
|
-
`),t.write(
|
|
16
|
+
`),t.write(Gr(r[e],i)));t.closeBlock()}function Gr(e,t){let n=`|`;for(let r=0;r<t;r++)n+=` `+(e[r]??``)+` |`;return n}function Kr(e){let t=e.textContent.trim();return!t.includes(`|`)&&!t.includes(`
|
|
17
17
|
`)?t:t.replaceAll(`|`,String.raw`\|`).replaceAll(`
|
|
18
|
-
`,` `)}function
|
|
19
|
-
|
|
18
|
+
`,` `)}function qr(e,t={}){let{nodes:n=Xt(),frontmatter:r=!1}=t,i,a=e;if(r){let[t,n]=Yr(e);i=t,n&&(a=e.slice(n))}let o=Xr(n,zt.parse(a).cursor(),a);return n.doc(i===void 0?{}:{frontmatter:i},o)}const Jr=/^---[ \t]*\r?\n([\s\S]*?\n)?---[ \t]*(?:\r?\n|$)/;function Yr(e){let t=Jr.exec(e);return t?[(t[1]??``).replace(/\r?\n$/,``),t[0].length]:[]}function Xr(e,t,n){let r=[];if(!t.firstChild())return r;do r.push(...Y(e,t,n));while(t.nextSibling());return t.parent(),r}function Y(e,t,n){switch(t.type.id){case P.ATXHeading1:return[X(e,t,n,1,!1)];case P.ATXHeading2:return[X(e,t,n,2,!1)];case P.ATXHeading3:return[X(e,t,n,3,!1)];case P.ATXHeading4:return[X(e,t,n,4,!1)];case P.ATXHeading5:return[X(e,t,n,5,!1)];case P.ATXHeading6:return[X(e,t,n,6,!1)];case P.SetextHeading1:return[X(e,t,n,1,!0)];case P.SetextHeading2:return[X(e,t,n,2,!0)];case P.Paragraph:return[$(e,t,n)];case P.HTMLBlock:case P.CommentBlock:case P.ProcessingInstructionBlock:return[$(e,t,n)];case P.Blockquote:return[ei(e,t,n)];case P.BulletList:return ti(e,t,n,`bullet`);case P.OrderedList:return ti(e,t,n,`ordered`);case P.FencedCode:case P.CodeBlock:return[ri(e,t,n)];case P.HorizontalRule:{let r=n.slice(t.from,t.to).trimEnd();return[e.horizontalRule({marker:r===`---`?null:r})]}case P.Table:return[ii(e,t,n)];case P.Task:return[$(e,t,n)];default:return n.slice(t.from,t.to).trim()===``?[]:(console.warn(`[meowdown] unsupported lezer block "${t.type.name}"`),[$(e,t,n)])}}function X(e,t,n,r,i){let a=t.from,o=t.from,s=t.to,c=-1,l=-1;if(t.firstChild()){t.type.id===P.HeaderMark&&t.from===a&&(o=t.to);let e=-1,n=-1,r=-1;do e=t.type.id,n=t.from,r=t.to;while(t.nextSibling());e===P.HeaderMark&&n>o&&(s=n,c=n,l=r),t.parent()}let u=$r(n.slice(o,s),Z(n,o)).trim(),d=i?Zr(n,c,l)||1:null;return e.heading({level:r,setextUnderline:d},u)}function Zr(e,t,n){if(t<0)return 0;let r=0;for(let i=t;i<n;i++){let t=e.charCodeAt(i);(t===61||t===45)&&r++}return r}function Z(e,t){let n=e.lastIndexOf(`
|
|
19
|
+
`,t-1)+1,r=0;for(let i=n;i<t;i++)r+=e.charCodeAt(i)===9?4-r%4:1;return r}function Qr(e,t){let n=0,r=0;for(;r<e.length&&n<t;){let t=e.charCodeAt(r);if(t===32)n+=1;else if(t===9)n+=4-n%4;else break;r++}return e.slice(r)}function $r(e,t){return t===0||!e.includes(`
|
|
20
|
+
`)?e:e.split(`
|
|
21
|
+
`).map((e,n)=>n===0?e:Qr(e,t)).join(`
|
|
22
|
+
`)}function Q(e,t,n){return e.paragraph($r(t,n))}function $(e,t,n){let r=t.from,i=t.to,a=Z(n,r);if(t.firstChild()){let o=``,s=r;do t.type.id===P.QuoteMark&&(o+=n.slice(s,t.from),s=t.to,Dt(n.charCodeAt(s))&&(s+=1));while(t.nextSibling());return t.parent(),o+=n.slice(s,i),Q(e,o,a)}return Q(e,n.slice(r,i),a)}function ei(e,t,n){let r=[];if(t.firstChild()){do{if(t.type.id===P.QuoteMark)continue;r.push(...Y(e,t,n))}while(t.nextSibling());t.parent()}return e.blockquote(r)}function ti(e,t,n,r){let i=[];if(t.firstChild()){do t.type.id===P.ListItem&&i.push(ni(e,t,n,r));while(t.nextSibling());t.parent()}return i}function ni(e,t,n,r){let i=[],a,o,s,c;if(t.firstChild()){do{if(t.type.id===P.ListMark){if(r===`ordered`){let e=n.charCodeAt(t.to-1);e===41?c=`)`:e===46&&(c=`.`);let r=Number.parseInt(n.slice(t.from,t.to),10);s=Number.isFinite(r)?r:1}else{let e=n.charCodeAt(t.from);c=e===42?`*`:e===43?`+`:`-`}continue}if(r===`bullet`&&t.type.id===P.Task){let r=t.from,s=t.to;if(a=!1,t.firstChild()){if(t.type.id===P.TaskMarker){let e=n.charCodeAt(t.from+1);e===120?(a=!0,o=`x`):e===88&&(a=!0,o=`X`),r=t.to}t.parent()}Dt(n.charCodeAt(r))&&(r+=1);let c=n.slice(r,s);i.push(Q(e,c,Z(n,r)));continue}i.push(...Y(e,t,n))}while(t.nextSibling());t.parent()}return e.list({kind:a==null?r:`task`,order:r===`ordered`?s??1:null,checked:a??!1,collapsed:!1,marker:c,taskMarker:o},i)}function ri(e,t,n){let r=``,i=``;if(t.firstChild()){do switch(t.type.id){case P.CodeInfo:r=n.slice(t.from,t.to);break;case P.CodeText:i=n.slice(t.from,t.to);break}while(t.nextSibling());t.parent()}return e.codeBlock({language:r},i)}function ii(e,t,n){let r=0;if(t.firstChild()){do t.type.id===P.TableDelimiter&&(r=ai(n.slice(t.from,t.to)));while(t.nextSibling());t.parent()}let i=[];if(t.firstChild()){do{let a=t.type.id;a===P.TableHeader?i.push(oi(e,t,n,!0,r)):a===P.TableRow&&i.push(oi(e,t,n,!1,r))}while(t.nextSibling());t.parent()}return e.table(i)}function ai(e){return e.split(`|`).filter(e=>e.trim()!==``).length}function oi(e,t,n,r,i){let a=Array(i).fill(``);if(t.firstChild()){let e=t.type.id===P.TableDelimiter,r=0;do if(t.type.id===P.TableDelimiter)r++;else if(t.type.id===P.TableCell){let o=r-+!!e;o>=0&&o<i&&(a[o]=n.slice(t.from,t.to).trim().replaceAll(String.raw`\|`,`|`))}while(t.nextSibling());t.parent()}let o=a.map(t=>{let n=e.paragraph(t);return r?e.tableHeaderCell(n):e.tableCell(n)});return e.tableRow(o)}function si(e){return e.replace(/\n+$/u,``)}function ci(e){return e.split(`
|
|
23
|
+
`).filter(e=>e.trim()!==``)}function li(e,t={}){let n=Pr(qr(e,{frontmatter:t.frontmatter}),{frontmatter:t.frontmatter});if(si(n)===si(e))return`exact`;let r=ci(e),i=ci(n);return r.length===i.length&&r.every((e,t)=>e.trimEnd()===i[t].trimEnd())?`normalizing`:`lossy`}export{jr as EDITOR_KEY_BINDINGS,e as Priority,li as checkRoundTrip,Nr as codeBlockLanguages,Ar as defineBulletAfterHeading,Kn as defineEditorExtension,Or as defineEmbedPaste,br as defineImage,Cr as defineImageClickHandler,$n as defineLinkClickHandler,Qe as defineMarkMode,Ke as definePlaceholder,qe as defineReadonly,Xn as defineWikilinkClickHandler,Pr as docToMarkdown,qr as markdownToDoc,oe as withPriority};
|
package/dist/style.css
CHANGED
|
@@ -167,7 +167,6 @@ img.ProseMirror-separator {
|
|
|
167
167
|
|
|
168
168
|
.ProseMirror {
|
|
169
169
|
box-sizing: border-box;
|
|
170
|
-
padding: 1.25rem var(--meowdown-gutter) 1.75rem;
|
|
171
170
|
color: var(--meowdown-text);
|
|
172
171
|
caret-color: var(--meowdown-accent);
|
|
173
172
|
-webkit-font-smoothing: antialiased;
|
|
@@ -176,13 +175,22 @@ img.ProseMirror-separator {
|
|
|
176
175
|
line-height: 1.7;
|
|
177
176
|
}
|
|
178
177
|
|
|
178
|
+
.meowdown-content {
|
|
179
|
+
padding: 1.25rem var(--meowdown-gutter) 1.75rem;
|
|
180
|
+
}
|
|
181
|
+
|
|
179
182
|
.ProseMirror > * + * {
|
|
180
183
|
margin-top: .85em;
|
|
181
184
|
}
|
|
182
185
|
|
|
186
|
+
.ProseMirror p {
|
|
187
|
+
white-space: pre-wrap;
|
|
188
|
+
}
|
|
189
|
+
|
|
183
190
|
.ProseMirror h1, .ProseMirror h2, .ProseMirror h3, .ProseMirror h4, .ProseMirror h5, .ProseMirror h6 {
|
|
184
191
|
letter-spacing: -.01em;
|
|
185
192
|
color: var(--meowdown-heading);
|
|
193
|
+
white-space: pre-wrap;
|
|
186
194
|
font-weight: 600;
|
|
187
195
|
line-height: 1.25;
|
|
188
196
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meowdown/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.17.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@lezer/markdown": "^1.6.4",
|
|
25
25
|
"@ocavue/utils": "^1.7.0",
|
|
26
26
|
"@prosekit/core": "^0.13.0-beta.3",
|
|
27
|
-
"@prosekit/extensions": "^0.17.5-beta.
|
|
27
|
+
"@prosekit/extensions": "^0.17.5-beta.6",
|
|
28
28
|
"@prosekit/pm": "^0.1.19-beta.0",
|
|
29
29
|
"prosemirror-highlight": "^0.15.2"
|
|
30
30
|
},
|